Partilhar via


Visão geral dos métodos de previsão no AutoML

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. 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. Esses métodos podem ser atribuídos aproximadamente 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

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. Existem muitos outros fatores que podem influenciar a demanda futura, como preço, dia da semana e 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 todos os recursos fornecidos pelo usuário são conhecidos no futuro, pelo menos até o horizonte de previsão.

Os modelos de regressão de previsão do AutoML também podem ser aumentados 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. As 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 no futuro, eles iteram até o horizonte de previsão, alimentando previsões anteriores de volta ao modelo para gerar a próxima previsão de um período à frente, conforme necessário. 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 em 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.

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 a previsão, você usa um conjunto de votação suave onde a composição e os pesos são encontrados usando o algoritmo de seleção Caruana Ensemble.

Nota

Há duas ressalvas importantes para conjuntos de modelos de previsão:

  • Atualmente, o TCN não pode ser incluído 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 a avaliação comparativa interna, esta estratégia tem uma tendência acrescida para sobreajustar os dados das séries cronológicas. Esse resultado pode resultar em má generalização, de modo que o conjunto de pilha é desativado por padrão. 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, você deve ter uma quantidade suficiente de dados históricos. Essa quantidade limite varia de acordo com a configuração do treinamento. 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{user validation}} = 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 modelagem, o AutoML deve garantir que não há valores de série ausentes e que as observações são regulares. Como resultado, faltam dois casos de dados:

  • Um valor está faltando para algumas células nos dados tabulares.
  • Falta uma linha , que corresponde a uma observação esperada dada a frequência das séries temporais.

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 essa frequência ou, opcionalmente, o usuário pode fornecê-la na configuração.

O método de imputação para fornecer valores em falta pode ser configurado 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

Os valores ausentes para recursos categóricos são manipulados durante a codificação numérica incluindo outra categoria que corresponde a um valor ausente. A imputação está implícita no caso em apreço.

Engenharia automatizada de recursos

O AutoML geralmente adiciona novas colunas aos dados do usuário para aumentar a precisão da modelagem. 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:

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 é chamada de 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.

Diagrama mostrando as vendas no varejo para uma série temporal não estacionária.

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:

Diagrama mostrando as vendas no varejo para uma série temporal fracamente estacionária.

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 séries temporais não estacionárias são detetadas, o AutoML aplica uma transformação diferencial automaticamente para mitigar os efeitos do comportamento não estacionário.

Varredura de modelos

Depois que os dados são preparados com manipulação de dados ausentes e engenharia de recursos, o AutoML varre um conjunto de modelos e hiperparâmetros usando um serviço de recomendação de modelo.

Os modelos são classificados com base em métricas de validação ou validação cruzada e, em seguida, opcionalmente, os modelos de topo podem ser usados em um modelo de conjunto. O melhor modelo, ou qualquer um dos modelos treinados, pode ser inspecionado, baixado ou implantado 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 de uma série temporal, há várias maneiras de modelar os dados. Você pode agrupar pelos dados nas colunas ID de série temporal e treinar modelos independentes para cada série. Uma abordagem mais geral é particionar os dados em grupos que podem conter várias séries (provavelmente relacionadas) e treinar um modelo por grupo.

Por padrão, a previsão de AutoML usa uma abordagem mista para o agrupamento de modelos. Os modelos de séries temporais, mais ARIMAX e Prophet, atribuem uma série a um grupo e 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

Agrupamentos de modelos mais gerais são possíveis usando a solução de muitos modelos no AutoML. Para obter mais informações, consulte Muitos modelos - bloco de anotações de ML automatizado.