? Notícias de última hora : lançamos o Chronos , um conjunto de modelos pré-criados para a previsão de séries temporais zero. Os cronos podem gerar previsões probabilísticas precisas para novas séries temporais não vistas durante o treinamento. Confira aqui!
Gluonts é um pacote Python para modelagem de séries temporais probabilísticas, concentrando -se em modelos baseados em aprendizado profundo, baseados em Pytorch e MXNET.
Gluonts requer Python 3.7 ou mais recente, e a maneira mais fácil de instalá -lo é via pip :
# install with support for torch models
pip install " gluonts[torch] "
# install with support for mxnet models
pip install " gluonts[mxnet] "Consulte a documentação para obter mais informações sobre como as gluontas podem ser instaladas.
Para ilustrar como usar os Gluonts, treinamos um modelo de profundidade e fazemos previsões usando o conjunto de dados do AirPassengers. O conjunto de dados consiste em uma única série temporal de números mensais de passageiros entre 1949 e 1960. Treinamos o modelo nos primeiros nove anos e fazemos previsões para os três anos restantes.
import pandas as pd
import matplotlib . pyplot as plt
from gluonts . dataset . pandas import PandasDataset
from gluonts . dataset . split import split
from gluonts . torch import DeepAREstimator
# Load data from a CSV file into a PandasDataset
df = pd . read_csv (
"https://raw.githubusercontent.com/AileenNielsen/"
"TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv" ,
index_col = 0 ,
parse_dates = True ,
)
dataset = PandasDataset ( df , target = "#Passengers" )
# Split the data for training and testing
training_data , test_gen = split ( dataset , offset = - 36 )
test_data = test_gen . generate_instances ( prediction_length = 12 , windows = 3 )
# Train the model and make predictions
model = DeepAREstimator (
prediction_length = 12 , freq = "M" , trainer_kwargs = { "max_epochs" : 5 }
). train ( training_data )
forecasts = list ( model . predict ( test_data . input ))
# Plot predictions
plt . plot ( df [ "1954" :], color = "black" )
for forecast in forecasts :
forecast . plot ()
plt . legend ([ "True values" ], loc = "upper left" , fontsize = "xx-large" )
plt . show ()Observe que as previsões são exibidas em termos de distribuição de probabilidade e as áreas sombreadas representam os intervalos de previsão de 50% e 90%.
Se você deseja contribuir para o projeto, consulte nossas diretrizes de contribuição.
Se você usar gluonts em uma publicação científica, incentivamos você a adicionar as seguintes referências aos artigos relacionados, além de quaisquer referências específicas de modelo que sejam relevantes para o seu trabalho:
@article { gluonts_jmlr ,
author = { Alexander Alexandrov and Konstantinos Benidis and Michael Bohlke-Schneider
and Valentin Flunkert and Jan Gasthaus and Tim Januschowski and Danielle C. Maddix
and Syama Rangapuram and David Salinas and Jasper Schulz and Lorenzo Stella and
Ali Caner Türkmen and Yuyang Wang } ,
title = { {GluonTS: Probabilistic and Neural Time Series Modeling in Python} } ,
journal = { Journal of Machine Learning Research } ,
year = { 2020 } ,
volume = { 21 } ,
number = { 116 } ,
pages = { 1-6 } ,
url = { http://jmlr.org/papers/v21/19-820.html }
} @article { gluonts_arxiv ,
author = { Alexandrov, A. and Benidis, K. and Bohlke-Schneider, M. and
Flunkert, V. and Gasthaus, J. and Januschowski, T. and Maddix, D. C.
and Rangapuram, S. and Salinas, D. and Schulz, J. and Stella, L. and
Türkmen, A. C. and Wang, Y. } ,
title = { {GluonTS: Probabilistic Time Series Modeling in Python} } ,
journal = { arXiv preprint arXiv:1906.05264 } ,
year = { 2019 }
}