Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve os métodos que o AutoML no Azure Machine Learning usa para preparar dados de séries cronológicas e criar modelos de previsão.
O que você vai aprender:
- Como o AutoML utiliza modelos de séries temporais e modelos de regressão para previsões
- Como o AutoML prepara e desenvolve funcionalidades a partir dos seus dados
- Quais os modelos de previsão disponíveis e quando os utilizar
Para obter instruções e exemplos sobre como treinar modelos de previsão no AutoML, consulte Configurar o AutoML para previsão de séries temporais.
Métodos de previsão no AutoML
O AutoML usa vários métodos para prever valores de séries temporais. Pode atribuir estes métodos a duas categorias:
- Modelos de séries temporais que usam valores históricos da quantidade alvo para fazer previsões para o futuro
- Modelos de regressão, ou explicativos, que usam variáveis preditoras para prever valores do alvo
Próximos passos: Depois de compreender estes métodos, aprenda a configurar o seu trabalho de previsão ou explore como o AutoML seleciona o melhor modelo.
Suponha que você precise prever a demanda diária por uma determinada marca de suco de laranja de um supermercado. Para a expressão, deixe $y_t$ representar a demanda por esta marca no dia $t$. Um modelo de série temporal prevê a demanda em $t+1$ usando alguma função de demanda histórica com a seguinte expressão:
$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$
A função $f$ geralmente tem parâmetros que você ajusta usando a demanda observada do passado. A quantidade de histórico que $f$ usa para fazer previsões, $s$, também pode ser considerada um parâmetro do modelo.
O modelo de série temporal no exemplo de demanda de suco de laranja pode não ser preciso o suficiente porque usa apenas informações sobre a demanda passada. Muitos outros fatores podem influenciar a procura futura, como o preço, o dia da semana e os períodos de feriados. Considere um modelo de regressão que use essas variáveis preditoras com a seguinte expressão:
$y = g(\text{price}, \text{dia da semana}, \text{holiday})$
Novamente, a função $g$ geralmente tem um conjunto de parâmetros, incluindo valores que regem a regularização, que o AutoML ajusta usando valores passados da demanda e os preditores. Você omite $t$ da expressão para enfatizar que o modelo de regressão usa padrões correlacionais entre variáveis definidas contemporaneamente para fazer previsões. Para prever $y_{t+1}$ a partir de $g$, você precisa saber qual dia da semana corresponde a $t+1$, se o dia é feriado e o preço do suco de laranja no dia $t+1$. As duas primeiras informações são fáceis de identificar usando um calendário. Um preço de varejo é comumente definido com antecedência, então o preço do suco de laranja provavelmente também é conhecido com um dia de antecedência. No entanto, o preço pode não ser conhecido 10 dias no futuro. É importante entender que a utilidade dessa regressão é limitada por quão longe no futuro você precisa de previsões, também chamado de horizonte de previsão, e até que ponto você conhece os valores futuros dos preditores.
Importante
Os modelos de regressão de previsão do AutoML assumem que todas as funcionalidades que fornece são conhecidas para o futuro, pelo menos até ao horizonte de previsão.
Também pode complementar os modelos de regressão de previsão do AutoML para usar valores históricos do alvo e dos preditores. O resultado é um modelo híbrido com características de um modelo de série temporal e um modelo de regressão pura. As grandezas históricas são variáveis preditoras extras na regressão referidas como quantidades defasadas. A ordem do atraso refere-se à distância em que o valor é conhecido. Por exemplo, o valor atual de um atraso de ordem dois do alvo para o exemplo de demanda de suco de laranja é a demanda de suco observada de dois dias atrás.
Outra diferença notável entre os modelos de séries temporais e os modelos de regressão é como eles geram previsões. Relações de recursão geralmente definem modelos de séries temporais que produzem previsões uma de cada vez. Para prever muitos períodos futuros, continuam a iterar até ao horizonte de previsão, inserindo as previsões anteriores novamente no modelo para gerar conforme necessário a próxima previsão de um período à frente. Em contraste, os modelos de regressão são considerados meteorologistas diretos que geram todas as previsões até o horizonte em uma única tentativa. Os meteorologistas diretos podem ser preferíveis aos métodos recursivos porque os modelos recursivos compõem o erro de previsão quando alimentam previsões anteriores de volta ao modelo. Quando os recursos de atraso são incluídos, o AutoML faz algumas modificações importantes nos dados de treinamento para que os modelos de regressão possam funcionar como meteorologistas diretos. Para obter mais informações, consulte Recursos de atraso para previsão de séries cronológicas no AutoML.
Modelos de previsão no AutoML
O AutoML no Azure Machine Learning implementa os seguintes modelos de previsão. Para cada categoria, os modelos são listados aproximadamente em ordem da complexidade dos padrões que podem incorporar, também conhecida como capacidade do modelo. Um modelo ingênuo, que simplesmente prevê o último valor observado, tem baixa capacidade, enquanto a Rede Convolucional Temporal (TCNForecaster), uma rede neural profunda (DNN) com potencialmente milhões de parâmetros ajustáveis, tem alta capacidade.
Saiba mais sobre modelos de deep learning: Se estiveres a trabalhar com padrões complexos de séries temporais, vê Modelos de Aprendizagem Profunda (DNN) para previsões em AutoML.
| Modelos de séries cronológicas | Modelos de regressão |
|---|---|
| Ingênuo, Sazonal Ingênuo, Média, Média Sazonal, ARIMA(X), Alisamento Exponencial | SGD Linear, LARS LASSO, Rede Elástica, Profeta, K Vizinhos Mais Próximos, Árvore de Decisão, Floresta Aleatória, Árvores Extremamente Aleatórias, Árvores Impulsionadas por Gradiente, LightGBM, XGBoost, TCNForecaster |
O AutoML também inclui modelos de conjunto que criam combinações ponderadas dos modelos com melhor desempenho para melhorar ainda mais a precisão. Para previsão, utilize um conjunto de votação suave onde a composição e os pesos são encontrados utilizando o Algoritmo de Seleção de Conjunto Caruana.
Nota
Há duas ressalvas importantes para conjuntos de modelos de previsão:
- Atualmente, a TCN não pode ser incluída em conjuntos.
- Por padrão, o AutoML desabilita o método de conjunto de pilha, que está incluído nas tarefas de regressão e classificação padrão no AutoML. O conjunto de pilha se encaixa em um metamodelo nas melhores previsões de modelo para encontrar pesos de conjunto. Durante o benchmarking interno, esta estratégia tem uma tendência crescente para sobreajustar os dados de séries temporais. Este resultado pode levar a uma má generalização, pelo que o conjunto de pilhas fica desativado por defeito. Você pode habilitar o conjunto na configuração AutoML, conforme necessário.
Como o AutoML usa seus dados
O AutoML aceita dados de séries cronológicas em formato tabular "wide". Cada variável deve ter sua própria coluna correspondente. O AutoML requer que uma coluna seja o eixo de tempo para o problema de previsão. Esta coluna deve ser analisada em um tipo datetime. O conjunto de dados de série temporal mais simples consiste em uma coluna de tempo e uma coluna de destino numérica. O alvo é a variável que você pretende prever para o futuro. A tabela a seguir mostra valores de exemplo para esse formato:
| carimbo de data/hora | quantidade |
|---|---|
| 2012-01-01 | 100 |
| 2012-01-02 | 97 |
| 2012-01-03 | 106 |
| ... | ... |
| 2013-12-31 | 347 |
Em casos mais complexos, o conjunto de dados pode conter outras colunas alinhadas com o índice de tempo:
| carimbo de data/hora | SKU | preço | anunciados | quantidade |
|---|---|---|---|---|
| 2012-01-01 | SUCO1 | 3.5 | 0 | 100 |
| 2012-01-01 | PÃO3 | 5.76 | 0 | 47 |
| 2012-01-02 | SUCO1 | 3.5 | 0 | 97 |
| 2012-01-02 | PÃO3 | 5,5 | 1 | 68 |
| ... | ... | ... | ... | ... |
| 2013-12-31 | SUCO1 | 3.75 | 0 | 347 |
O segundo exemplo inclui uma SKU, um preço de varejo e um sinalizador para indicar se um item foi anunciado, além do carimbo de data/hora e da quantidade de destino. O segundo conjunto de dados revela duas séries: uma para o JUICE1 SKU e outra para o BREAD3 SKU. A coluna SKU é uma coluna ID de série temporal porque o agrupamento por esses valores de coluna produz dois grupos que contêm uma única série. Antes da varredura do modelo, o AutoML faz a validação básica da configuração de entrada e dos dados e adiciona recursos de engenharia.
Requisitos em matéria de comprimento dos dados
Para treinar um modelo de previsão, é necessário uma quantidade suficiente de dados históricos. A quantidade exigida varia consoante a configuração do treino. Se você fornecer dados de validação, o número mínimo de observações de treinamento necessárias por série temporal será expresso da seguinte forma:
$T_{\text{validação do utilizador}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
Nesta expressão, $H$ é o horizonte de previsão, $l_{\text{max}}$ é a ordem máxima de atraso e $s_{\text{window}}$ é o tamanho da janela para recursos de agregação contínua. Se utilizar a validação cruzada, o número mínimo de observações é expresso da seguinte forma:
$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
Nesta versão, $n_{\text{CV}}$ é o número de dobras de validação cruzada e $n_{\text{step}}$ é o tamanho da etapa CV, ou deslocamento entre dobras CV. A lógica básica por trás dessas fórmulas é que você sempre deve ter pelo menos um horizonte de observações de treinamento para cada série temporal, incluindo algum preenchimento para lags e divisões de validação cruzada. Para obter mais informações sobre validação cruzada para previsão, consulte Seleção de modelo no AutoML.
Tratamento de dados em falta
Os modelos de séries temporais no AutoML requerem observações espaçadas regularmente no tempo, o que inclui casos como observações mensais ou anuais em que o número de dias entre observações pode variar. Antes do início do processo de modelação, o AutoML assegura que não faltam valores em série e que as observações são regulares.
O AutoML lida com dois tipos de dados em falta:
- Valores de células em falta: Falta um valor para alguma célula nos dados tabulares
- Linhas em falta: Falta uma linha que corresponde a uma observação esperada dada a frequência da série temporal
O AutoML deteta e insere automaticamente ambos os tipos de dados em falta.
No primeiro caso, o AutoML imputa valores ausentes usando técnicas comuns configuráveis. A tabela a seguir mostra um exemplo de uma linha esperada que está faltando:
| carimbo de data/hora | quantidade |
|---|---|
| 2012-01-01 | 100 |
| 2012-01-03 | 106 |
| 2012-01-04 | 103 |
| ... | ... |
| 2013-12-31 | 347 |
Esta série aparentemente tem uma frequência diária, mas não há observação para 2 de janeiro de 2012 (2012-01-02). Nesse caso, o AutoML tenta preencher os dados adicionando uma nova linha para o valor ausente. O novo valor para a quantity coluna e quaisquer outras colunas nos dados são então imputados como outros valores ausentes. Para executar este processo, o AutoML deve reconhecer a frequência da série para poder preencher lacunas de observação, como demonstrado neste caso. O AutoML deteta automaticamente esta frequência ou, opcionalmente, pode fornecê-la na configuração.
Pode configurar o método de imputação para fornecer valores em falta na entrada. A tabela a seguir lista os métodos padrão:
| Tipo de coluna | Método de imputação por defeito |
|---|---|
| Destino | Forward fill (última observação realizada) |
| Característica numérica | Valor mediano |
O AutoML lida com valores em falta para características categóricas durante a codificação numérica, incluindo outra categoria que corresponde a um valor em falta. A imputação está implícita no caso em apreço.
Engenharia automatizada de recursos
O AutoML geralmente adiciona novas colunas aos seus dados para aumentar a precisão da modelação. Os recursos projetados podem incluir itens padrão ou opcionais.
Recursos de engenharia padrão:
- Recursos de calendário derivados do índice de tempo, como o dia da semana
- Características categóricas derivadas de IDs de séries cronológicas
- Codificação de tipos categóricos para tipo numérico
Funcionalidades de engenharia opcionais:
- Características do indicador para férias associadas a uma determinada região
- Desfasamentos em relação à quantidade-alvo
- Atrasos de colunas de feição
- Agregações de janela rolante, como a média móvel, da quantidade-alvo
- Decomposição sazonal ((Decomposição sazonal e tendencial usando Loess (STL))
Você pode configurar a featurization a partir do SDK do AutoML usando a classe ForecastingJob ou a partir da interface da Web do estúdio do Azure Machine Learning.
Deteção e manuseamento de séries cronológicas não estacionárias
Uma série temporal em que a média e a variância mudam ao longo do tempo chama-se não estacionária. As séries temporais que exibem tendências estocásticas não são estacionárias por natureza.
A imagem a seguir apresenta uma visualização para esse cenário. O gráfico traça uma série que geralmente tende a subir. Se você calcular e comparar os valores médios (médios) para a primeira e segunda metade da série, poderá identificar as diferenças. A média da série na primeira metade da trama é menor do que a média na segunda metade. O facto de a média das séries depender do intervalo de tempo em análise é um exemplo dos momentos variáveis no tempo. Neste cenário, a média de uma série é o primeiro momento.
A imagem seguinte mostra um gráfico que plota a série original nas primeiras diferenças, $\Delta y_{t} = y_t - y_{t-1}$. A média da série é aproximadamente constante ao longo do intervalo de tempo, enquanto a variância parece variar. Este cenário demonstra um exemplo de uma série temporal estacionária de primeira ordem:
Os modelos de regressão AutoML não podem inerentemente lidar com tendências estocásticas ou outros problemas bem conhecidos associados a séries temporais não estacionárias. Como resultado, a precisão da previsão fora da amostra pode ser fraca quando essas tendências estão presentes.
O AutoML analisa automaticamente um conjunto de dados de séries temporais para determinar seu nível ou estacionariedade. Quando deteta séries temporais não estacionárias, o AutoML aplica automaticamente uma transformada de diferenciação para mitigar os efeitos do comportamento não estacionário.
Varredura de modelos
Após a preparação de dados com falta de gestão de dados e engenharia de funcionalidades, o AutoML percorre um conjunto de modelos e hiperparâmetros utilizando um serviço de recomendação de modelos.
Os modelos são classificados com base em métricas de validação ou validação cruzada. Pode opcionalmente usar os modelos de topo num modelo em conjunto. Pode inspecionar, descarregar ou implementar o melhor modelo ou qualquer um dos modelos treinados para produzir previsões conforme necessário. Para obter mais informações, consulte Varredura e seleção de modelos para previsão no AutoML.
Agrupamento de modelos
Quando um conjunto de dados contém mais do que uma série temporal, pode modelar os dados de formas diferentes. Pode agrupar os dados pelas colunas de ID de séries temporais e treinar modelos independentes para cada série. Uma abordagem mais geral é particionar os dados em grupos que contenham múltiplas séries (provavelmente relacionadas) e treinar um modelo para cada grupo.
Por padrão, a previsão de AutoML usa uma abordagem mista para o agrupamento de modelos. Os modelos de séries temporais, além do ARIMAX e do Prophet, atribuem uma série a um grupo. Outros modelos de regressão atribuem todas as séries a um único grupo.
Veja como cada tipo de modelo usa grupos:
Cada série em um grupo separado (1:1): Naive, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet
Todas as séries no mesmo grupo (N:1): Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster
Podes usar a solução de muitos modelos no AutoML para agrupamentos de modelos mais gerais. Para obter mais informações, consulte Muitos modelos - bloco de anotações de ML automatizado.