Aqui está uma receita simples que pode ajudá-lo a começar a escrever código e testar idéias ...
Vamos supor que você tenha dados mensais registrados ao longo de vários anos, então você tem 36 valores. Vamos supor também que você só se preocupa em prever um mês (valor) com antecedência.
- Análise exploratória de dados: aplique alguns dos métodos tradicionais de análise de séries temporais para estimar a dependência do atraso nos dados (por exemplo, gráficos de autocorrelação e autocorrelação parcial, transformações, diferenciação). Digamos que você encontre que o valor de um determinado mês está correlacionado com os dados dos últimos três meses, mas não muito além disso.
- Particionar seus dados em conjuntos de treinamento e validação: Tome os primeiros 24 pontos como valores de treinamento e os pontos restantes como conjunto de validação.
- Crie o layout da rede neural: você tomará os valores dos últimos três meses como entradas e deseja prever o valor do próximo mês. Portanto, você precisa de uma rede neural com uma camada de entrada contendo três nós e uma camada de saída contendo um nó. Você provavelmente deve ter uma camada oculta com pelo menos alguns nós. Infelizmente, escolher o número de camadas ocultas e o respectivo número de nós não é algo para o qual existem diretrizes claras. Eu começaria pequeno, como 3: 2: 1.
- Crie os padrões de treinamento: Cada padrão de treinamento terá quatro valores, com os três primeiros correspondentes aos nós de entrada e o último definindo qual é o valor correto para o nó de saída. Por exemplo, se seus dados de treinamento forem os valores , o
x1,x2…,x24
pattern1:x1,x2,x3,x4
pattern2:x2,x3,x4,x5
…
pattern21:x21,x22,x23,x24
- Treine a rede neural nesses padrões
- Teste a rede no conjunto de validação (meses 25 a 36): aqui você passará os três valores que a rede neural precisa para a camada de entrada e verá como o nó de saída é configurado. Portanto, para ver quão bem a rede neural treinada pode prever o valor do mês 32, você passará os valores nos meses 29, 30 e 31
Esta receita é obviamente de alto nível e você pode coçar a cabeça primeiro ao tentar mapear seu contexto em diferentes bibliotecas / programas de software. Mas, esperançosamente, isso esboça o ponto principal: você precisa criar padrões de treinamento que contenham razoavelmente a estrutura de correlação da série que você está tentando prever. E se você faz a previsão com uma rede neural ou com um modelo ARIMA, o trabalho exploratório para determinar o que é essa estrutura geralmente é a parte mais difícil e demorada.
Na minha experiência, as redes neurais podem fornecer ótimas funcionalidades de classificação e previsão, mas configurá-las pode levar muito tempo. No exemplo acima, você pode achar que 21 padrões de treinamento não são suficientes; diferentes transformações de dados de entrada levam a melhores / piores previsões; variar o número de camadas ocultas e nós da camada oculta afeta muito as previsões; etc.
Eu recomendo consultar o site neural_forecasting , que contém toneladas de informações sobre competições de previsão de redes neurais. A página Motivações é especialmente útil.