Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Previsão fácil e precisa com AutoGluon-TimeSeries

O AutoGluon-TimeSeries é a mais recente adição ao AutoGluon, que ajuda você a criar facilmente modelos poderosos de previsão de séries temporais com apenas três linhas de código.

A previsão de séries temporais é uma tarefa comum em uma ampla gama de indústrias, bem como em domínios científicos. Ter acesso a previsões confiáveis ​​de oferta, demanda ou capacidade é crucial para o planejamento dos negócios. No entanto, a previsão de séries temporais é um problema difícil, especialmente quando milhares de séries temporais potencialmente relacionadas estão disponíveis, como vendas em um grande catálogo no comércio eletrônico ou capacidade em centenas de sites operacionais.

Métodos de previsão estatísticos ou baseados em julgamentos simples geralmente já são linhas de base fortes que são difíceis de melhorar com novos métodos de aprendizado de máquina (ML). Além disso, as aplicações de avanços recentes em ML para previsão são variadas, com poucos métodos como DeepAR [1] ou Temporal Fusion Transformers [2] surgindo como escolhas populares. No entanto, esses métodos são difíceis de treinar, ajustar e implantar na produção, exigindo conhecimento especializado de ML e análise de séries temporais.

O AutoML é um tópico em rápido crescimento no ML, com foco na automação de tarefas comuns em pipelines de ML, incluindo pré-processamento de recursos, seleção de modelo, ajuste de modelo, combinação e implantação. AutoGluon-TimeSeries é a mais recente adição ao AutoGlúon, uma das principais soluções de AutoML de software livre e baseia-se na poderosa estrutura do AutoGluon para AutoML em tarefas de previsão. O AutoGluon-TimeSeries foi projetado para criar sistemas de previsão poderosos com apenas três linhas de código, aliviando os desafios de pré-processamento de recursos, seleção de modelo, ajuste de modelo e facilidade de implantação.

Com uma simples chamada para AutoGluon-TimeSeries TimeSeriesPredictor, o AutoGluon segue uma ordem intuitiva de prioridade no ajuste de modelos: começando com linhas de base simples e ingênuas e passando para poderosas redes neurais globais e métodos avançados baseados em árvore, tudo dentro do orçamento de tempo especificado pelo usuário. Quando séries temporais relacionadas (covariáveis ​​com variação de tempo ou variáveis ​​exógenas) ou metadados de itens (recursos estáticos) estão disponíveis, o AutoGluon-TimeSeries os considera na previsão. A biblioteca também explora a otimização bayesiana para ajuste de hiperparâmetros, chegando à melhor configuração de modelo por meio do ajuste de modelos complexos. Por fim, o AutoGluon-TimeSeries combina o melhor dos métodos estatísticos e baseados em ML em um conjunto de modelos otimizado para o problema em questão.

Nesta postagem, mostramos a facilidade de uso do AutoGluon-TimeSeries na construção rápida de um poderoso previsor.

Introdução ao AutoGluon-TimeSeries

Para começar, você precisa instalar o AutoGluon, que é facilmente feito com pip em um shell UNIX:

pip install "autogluon>=0.6"

AutoGluon-TimeSeries apresenta o TimeSeriesDataFrame para trabalhar com conjuntos de dados que incluem várias séries temporais relacionadas (às vezes chamadas de conjunto de dados de painel). Esses quadros de dados podem ser criados a partir dos chamados quadros de dados de formato longo, que possuem IDs de séries temporais e timestamps organizados em linhas. O seguinte é um exemplo de dados, retirado da competição M4 [3]. Aqui o item_id A coluna especifica o identificador exclusivo de uma única série temporal, como a ID do produto para dados de vendas diárias de vários produtos. o target coluna é o valor de interesse que o AutoGluon-TimeSeries aprenderá a prever. weekend é uma covariável variável no tempo extra que produzimos para marcar se a observação foi no fim de semana ou não.

Podemos facilmente produzir um novo TimeSeriesDataFrame deste conjunto de dados usando o from_data_frame construtor. Veja o seguinte código Python:

df = TimeSeriesDataFrame.from_data_frame(raw_data_frame)

Alguns dados de séries temporais têm recursos que não variam no tempo (recursos estáticos ou metadados de itens) que podem ser usados ​​no treinamento de um modelo de previsão. Por exemplo, o conjunto de dados M4 apresenta uma variável de categoria para cada série temporal. Estes podem ser adicionados ao TimeSeriesDataFrame definindo o static_features variável com um novo quadro de dados.

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Use o seguinte código:

df.static_features = raw_static_features

Treinar um TimeSeriesPredictor

Finalmente, podemos chamar o TimeSeriesPredictor para ajustar uma ampla gama de modelos de previsão para construir um sistema de previsão preciso. Veja o seguinte código:

predictor = TimeSeriesPredictor(
    prediction_length=7,
    eval_metric="MASE",
    known_covariates_names=["weekend"],
)

Aqui, especificamos que o TimeSeriesPredictor deve produzir modelos para prever os próximos sete períodos de tempo e julgar os melhores modelos usando o erro escalar absoluto médio (MAS SE). Além disso, indicamos que a covariável variável no tempo weekend está disponível no conjunto de dados. Agora podemos ajustar o objeto preditor no TimeSeriesDataFrame produzido anteriormente:

predictor.fit(df, presets="medium_quality", time_limit=1800)

Além de fornecer os dados de treinamento, pedimos ao preditor para usar “medium_quality” predefinições. O AutoGluon-TimeSeries vem com várias predefinições para selecionar subconjuntos de modelos a serem considerados e quanto tempo gastar para ajustá-los, gerenciando a compensação entre velocidade de treinamento e precisão. Além das predefinições, usuários mais experientes podem usar um hyperparameters argumento para especificar com precisão modelos de componentes e quais hiperparâmetros definir neles. Também especificamos um limite de tempo de 1,800 segundos, após o qual o preditor para de treinar.

Sob o capô, o AutoGluon-TimeSeries treina o máximo de modelos possível dentro do período de tempo especificado, começando com linhas de base ingênuas, mas poderosas, e trabalhando em direção a previsões mais complexas com base em árvores aprimoradas e modelos de rede neural. chamando predictor.leaderboard(), podemos ver uma lista de todos os modelos treinados e as pontuações de precisão e os tempos de treinamento de cada um. Observe que cada modelo AutoGluon-TimeSeries relata seus erros em um formato “quanto maior, melhor”, o que significa que a maioria das medidas de erro de previsão são multiplicadas por -1 quando relatadas. Veja o seguinte exemplo:

              model  score_val  pred_time_val  fit_time_marginal  fit_order
0  WeightedEnsemble  -0.612510      15.406334          48.428711          8
1  AutoGluonTabular  -0.654924       1.068694         104.208688          6
2            DeepAR  -0.673366       6.731659        1065.956648          7
3     SeasonalNaive  -1.035286       0.410615           0.000742          2
4               ETS  -1.073640       5.832542           0.000584          3
5             Theta  -1.107362       1.773439           0.000614          4
6             ARIMA  -3.006273       2.483140           0.000625          5
7             Naive  -3.427339      29.532215           0.000577          1

Previsão com um TimeSeriesPredictor

Finalmente, podemos usar o preditor para prever todas as séries temporais em um TimeSeriesDataFrame, 7 dias no futuro. Observe que, como usamos covariáveis ​​variáveis ​​no tempo que se supõe serem conhecidas no futuro, elas também devem ser especificadas no momento da previsão. Veja o seguinte código:

predictions = predictor.predict(
	df,
	known_covariates=future_known_covariates
)

Por padrão, o AutoGluon-TimeSeries fornece previsões de ponto e previsões probabilísticas (quantil) do valor de destino. As previsões probabilísticas são essenciais em muitas tarefas de planejamento e podem ser usadas para calcular intervalos com flexibilidade, permitindo tarefas posteriores, como planejamento de estoque e capacidade.

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

O seguinte é um gráfico de previsão de amostra demonstrando previsões pontuais e intervalos de previsão.

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Conclusão

O AutoGluon-TimeSeries oferece aos analistas e cientistas de dados uma maneira rápida e fácil de criar modelos de previsão poderosos. Além de alguns dos recursos comumente usados ​​da biblioteca apresentados nesta postagem, o AutoGluon-TimeSeries apresenta um conjunto de maneiras de configurar previsões para usuários avançados. Os preditores também são fáceis de treinar, implantar e atender em escala com Amazon Sage Maker, usando o aprendizado profundo do AutoGluon containers.

Para obter mais detalhes sobre como usar o AutoGluon, exemplos, tutoriais, bem como outras tarefas que o AutoGluon aborda, como aprendizado em dados tabulares ou multimodais, visite AutoGlúon. Para começar a usar o AutoGluon-TimeSeries, confira nosso tutorial de início rápido ou o nosso tutorial detalhado para uma visão mais profunda de todos os recursos que a biblioteca oferece. Siga o AutoGluon em Twitter, e nos estrelar GitHub para ser informado sobre as últimas atualizações.

Para previsão em escala com computação e fluxos de trabalho dedicados, suporte de nível empresarial, explicabilidade de previsão e muito mais, confira também Previsão da Amazônia.

Referências

[1] Salinas, David, Valentin Flunkert, Jan Gasthaus e Tim Januschowski. “DeepAR: Previsão probabilística com redes recorrentes autorregressivas.” Jornal Internacional de Previsão 36 (3): 2020-1181.

[2] Lim, Bryan, Sercan O Arik, Nicolas Loeff e Tomas Pfister. “Temporal Fusion Transformers para previsão de séries temporais multihorizontes interpretáveis.” Jornal Internacional de Previsão 37.4 (2021): 1748-1764.

[3] Makridakis, Spyros, Evangelos Spiliotis e Vassilios Assimakopoulos. “A Competição M4: 100,000 séries temporais e 61 métodos de previsão.” Jornal Internacional de Previsão 36.1 (2020): 54-74.


Sobre os autores

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Caner turcomano é um cientista aplicado na Amazon Web Services, onde trabalha em problemas na interseção de aprendizado de máquina e previsão, além de desenvolver o AutoGluon-TimeSeries. Antes de ingressar na AWS, ele trabalhou no setor de consultoria de gerenciamento como cientista de dados, atendendo os setores de serviços financeiros e telecomunicações em projetos em todo o mundo. Os interesses pessoais de pesquisa de Caner abrangem uma variedade de tópicos, incluindo previsão, inferência causal e AutoML.

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Oleksandr Shchur é um cientista aplicado na Amazon Web Services, onde trabalha na previsão de séries temporais no AutoGluon-TimeSeries. Antes de ingressar na AWS, ele concluiu o doutorado em Machine Learning na Universidade Técnica de Munique, Alemanha, fazendo pesquisas sobre modelos probabilísticos para dados de eventos. Seus interesses de pesquisa incluem aprendizado de máquina para dados temporais e modelagem generativa.

Previsão fácil e precisa com AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Nick Erickson é um Cientista Aplicado Sênior na Amazon Web Services. Ele obteve seu mestrado em Ciência da Computação e Engenharia pela Universidade de Minnesota Twin Cities. Ele é coautor e desenvolvedor principal da estrutura AutoML de software livre AutoGluon. Começando como um kit de ferramentas de ML de competição pessoal em 2018, Nick expandiu continuamente os recursos do AutoGluon e ingressou na Amazon AI em 2019 para abrir o código do projeto e trabalhar em tempo integral no avanço do estado da arte no AutoML.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS