Compartilhar via


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

Este artigo descreve os métodos usados pelo AutoML no Azure Machine Learning para preparar dados de séries temporais e criar modelos de previsão.

O que você aprenderá:

  • Como o AutoML usa modelos de série temporal e modelos de regressão para previsão
  • Como o AutoML prepara e desenvolve recursos de seus dados
  • Quais modelos de previsão estão disponíveis e quando usá-los

Para obter instruções e exemplos sobre como treinar modelos de previsão no AutoML, confira Configurar o AutoML para a 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érie temporal. Você pode atribuir esses métodos a duas categorias:

  • Modelos de séries temporais que usam valores históricos da quantidade pretendida para fazer previsões para o futuro
  • Modelos de regressão, ou explicativos, que usam variáveis ​​preditoras para prever valores da quantidade pretendida

Próximas etapas: Depois de entender esses métodos, saiba como configurar seu trabalho de previsão ou explorar como o AutoML seleciona o melhor modelo.

Imagine que você precisa prever a demanda diária de uma determinada marca de suco de laranja em um supermercado. Para a expressão, deixe que $y_t$ represente 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})$

Em geral, a função $f$ tem parâmetros que você ajusta usando a demanda observada no 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 anterior. Muitos outros fatores podem influenciar a demanda futura, como preço, dia da semana e períodos de férias. Considere um modelo de regressão que usa essas variáveis ​​preditoras com a seguinte expressão:

$y = g(\text{price}, \text{dia da semana}, \text{feriado})$

Lembre-se de que a função $g$ geralmente tem um conjunto de parâmetros, incluindo valores que controlam a regularização, que são ajustados pelo AutoML com o uso de valores anteriores da demanda e dos 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 qual é 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. O preço de varejo geralmente é definido com antecedência, portanto 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 daqui a 10 dias. É importante entender que a utilidade dessa regressão é limitada pela distância no futuro em que você precisa fazer previsões, algo 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 pressupõem que todos os recursos fornecidos são conhecidos no futuro, pelo menos até o horizonte de previsão.

Você também pode aumentar os modelos de regressão de previsão do AutoML para usar valores históricos do destino 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 quantidades históricas são variáveis ​​preditoras extras na regressão, denominadas quantidades defasadas. A ordem da defasagem refere-se a quão distante no passado o valor é conhecido. Por exemplo, o valor atual de um atraso de duas ordens de magnitude da quantidade pretendida 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érie temporal que produzem previsões uma de cada vez. Para prever vários períodos no futuro, eles iteram até o horizonte de previsão, alimentando as 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 previsores diretos e geram todas as previsões até o horizonte em uma única tentativa. Os métodos de previsão direta podem ser preferíveis aos métodos recursivos porque os modelos recursivos agravam o erro de previsão quando alimentam previsões anteriores de volta ao modelo. Quando 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 previsores diretos. Para saber mais, confira Recursos de atraso para previsão de séries temporais 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 de complexidade dos padrões que podem incorporar, algo também conhecido como capacidade do modelo. Um modelo Naive, que simplesmente prevê o último valor observado, tem baixa capacidade, enquanto a Rede Convolucional Temporal (TCNForecaster), uma DNN (rede neural profunda) com potencialmente milhões de parâmetros ajustáveis, tem alta capacidade.

Saiba mais sobre modelos de aprendizado profundo: Se você estiver trabalhando com padrões complexos de série temporal, consulte DNN (modelos de aprendizado profundo) para previsão no AutoML.

Modelos de série temporal Modelos de regressão
Naive, Seasonal Naive, Average, Seasonal Average, ARIMA(X), Exponential Smoothing SGD linear, LARS LASSO, Rede elástica, Prophet, Vizinhos mais próximo K, Árvore de decisão, Floresta aleatória, Árvores extremamente aleatórias, Árvores reforçadas com gradiente, LightGBM, XGBoost, TCNForecaster

O AutoML também inclui modelos de conjunto que criam combinações ponderadas dos modelos de melhor desempenho para melhorar ainda mais a precisão. Para previsão, use um conjunto de votação suave em que a composição e os pesos são encontrados usando o Algoritmo de Seleção do Conjunto Caruana.

Observação

Há dois alertas importantes para ensembles de modelos de previsão:

  • No momento, o TCN não pode ser incluído em conjuntos.
  • Por padrão, o AutoML desabilita o método de conjunto de pilhas, que está incluído nas tarefas padrão de regressão e classificação no AutoML. O stack ensemble ajusta um metamodelo nas melhores previsões de modelo para encontrar pesos de ensemble. Durante o benchmarking interno, essa estratégia tem uma tendência maior de sobreajuste de dados de série temporal. Esse resultado pode levar a uma generalização inadequada, portanto o stack ensemble é desativado por padrão. É possível habilitar o conjunto na configuração do AutoML, conforme necessário.

Como o AutoML usa seus dados

O AutoML aceita dados de séries temporais em formato tabular "amplo". Cada variável deve ter a própria coluna correspondente. O AutoML exige que uma coluna seja o eixo de tempo para o problema de previsão. Esta coluna deve ser analisável em um tipo datetime. O conjunto de dados de séries temporais mais simples consiste em uma coluna de tempo e em uma coluna de destino numérica. O destino é a variável que você pretende prever para o futuro. A seguinte tabela mostra valores de exemplo para este 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 price anunciado quantidade
2012-01-01 JUICE1 3,5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUICE1 3,5 0 97
2012-01-02 BREAD3 5.5 1 68
... ... ... ... ...
2013-12-31 JUICE1 3,75 0 347

O segundo exemplo inclui um SKU, um preço de varejo e um sinalizador para indicar se um item foi anunciado, além do registro de data e hora e da quantidade pretendida. O segundo conjunto de dados revela duas séries: uma para o SKU JUICE1 e outra para o SKU BREAD3. A coluna SKU é uma coluna de ID de série temporal porque o agrupamento por esses valores de coluna produz dois grupos, cada um com uma única série. Antes da varredura do modelo, o AutoML faz a validação básica da configuração e dos dados de entrada e adiciona recursos de engenharia.

Requisitos de comprimento de dados

Para treinar um modelo de previsão, você precisa de uma quantidade suficiente de dados históricos. A quantidade necessária varia de acordo com a configuração de 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 de atraso máxima e $s_{\text{window}}$ é o tamanho da janela para recursos de agregação contínua. Se você usar validação cruzada, o número mínimo de observações será expresso da seguinte forma:

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$

Nessa versão, $n_{\text{CV}}$ é o número de dobras de validação cruzada e $n_{\text{step}}$ é o tamanho da etapa do CV ou do deslocamento entre as dobras do 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 alguns preenchimentos para defasagens e divisões de validação cruzada. Para saber mais sobre a validação cruzada para previsão, confira Seleção de modelos no AutoML.

Tratamento de dados ausentes

Os modelos de séries temporais no AutoML exigem observações regularmente espaçadas no tempo, o que inclui casos como observações mensais ou anuais, em que o número de dias entre as observações pode variar. Antes do processo de modelagem ser iniciado, o AutoML garante que não haja valores de série ausentes e que as observações sejam regulares.

O AutoML manipula dois tipos de dados ausentes:

  • Valores de célula ausentes: Um valor está ausente para alguma célula nos dados tabulares
  • Linhas ausentes: Uma linha está ausente que corresponde a uma observação esperada dada a frequência da série temporal

O AutoML detecta e imputa automaticamente os dois tipos de dados ausentes.

No primeiro caso, o AutoML imputa valores ausentes usando técnicas configuráveis ​​comuns. Esta tabela 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 (02/01/2012). Nesse caso, o AutoML tenta preencher os dados adicionando uma nova linha para o valor ausente. Em seguida, o novo valor para a coluna quantity e quaisquer outras colunas nos dados são imputados como outros valores ausentes. Para realizar esse processo, o AutoML deve reconhecer a frequência da série para poder preencher lacunas de observação, conforme demonstrado neste caso. O AutoML detecta automaticamente essa frequência ou, opcionalmente, você pode fornecê-la na configuração.

Você pode configurar o método de imputação para fornecer valores ausentes na entrada. Esta tabela lista os métodos padrão:

Tipo de coluna Método de imputação padrão
Destino Preenchimento avançado (a última observação é propagada adiante)
Característica numérica Valor mediano

O AutoML manipula valores ausentes para recursos categóricos durante a codificação numérica, incluindo outra categoria que corresponde a um valor ausente. A atribuição é implícita nesse caso.

Engenharia de recursos automatizada

O AutoML geralmente adiciona novas colunas aos seus dados para aumentar a precisão da modelagem. Os recursos de engenharia podem incluir itens padrão ou opcionais.

Recursos de engenharia padrão:

  • Recursos de calendário derivados do índice de tempo, como dia da semana
  • Recursos categóricos derivados de IDs da série temporal
  • Codificação de tipos categóricos em tipos numéricos

Recursos de engenharia opcionais:

Você pode configurar a definição de recursos do SDK do AutoML usando a classe ForecastingJob ou a interface da Web do Estúdio do Azure Machine Learning.

Detecção e processamento de séries temporais não estacionárias

Uma série temporal em que a média e a variação mudam ao longo do tempo é chamada de não estação. Séries temporais que exibem tendências aleatórias são não estacionárias por natureza.

A imagem a seguir apresenta uma visualização para este cenário. O gráfico traça uma série que geralmente apresenta tendência ascendente. Se você calcular e comparar os valores médios da primeira e da segunda metades da série, poderá identificar as diferenças. A média da série na primeira metade do gráfico é menor que a média na segunda metade. O fato de a média da série depender do intervalo de tempo em análise é um exemplo dos momentos que variam com o 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 próxima imagem mostra um gráfico que traça a série original em 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 que mostra as vendas de varejo para uma série temporal fracamente estacionária.

Os modelos de regressão do AutoML não conseguem lidar inerentemente com tendências aleatórias ou outros problemas conhecidos associados a séries temporais não estacionárias. Como resultado, a precisão da previsão fora da amostra pode ser baixa 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 a estacionariedade. Quando detecta séries temporais não estacionárias, o AutoML aplica automaticamente uma transformação de diferenciação para atenuar os efeitos do comportamento não estacionário.

Varredura do modelo

Após a preparação de dados com tratamento de dados ausentes e engenharia de características, 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 nas métricas de validação ou validação cruzada. Opcionalmente, você pode usar os principais modelos em um modelo de conjunto. Você pode inspecionar, baixar ou implantar o melhor modelo ou qualquer um dos modelos treinados para produzir previsões conforme necessário. Para saber mais, confira Varredura e seleção de modelos para previsões no AutoML.

Agrupamento de modelos

Quando um conjunto de dados contém mais de uma série temporal, você pode modelar os dados de maneiras diferentes. Você pode agrupar os dados pelas colunas de ID da série temporal e treinar modelos independentes para cada série. Uma abordagem mais geral é particionar os dados em grupos que contêm várias séries (provavelmente relacionadas) e treinar um modelo para cada grupo.

Por padrão, a previsão do AutoML usa uma abordagem mista para agrupamento de modelos. Modelos de série temporal, além de ARIMAX e Prophet, atribuem uma série a um grupo. Outros modelos de regressão atribuem todas as séries a um único grupo.

Confira 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 e Prophet

  • Todas as séries do 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 e TCNForecaster

Você pode usar a solução muitos modelos no AutoML para agrupamentos de modelos mais gerais. Para saber mais, confira Muitos modelos – Notebook de ML automatizado.