? Breaking News : Nous avons publié Chronos , une suite de modèles pré-entraînés pour les prévisions de séries chronologiques zéro-shot. Les chronos peuvent générer des prédictions probabilistes précises pour les nouvelles séries chronologiques non observées lors de l'entraînement. Vérifiez-le ici!
Gluont est un package Python pour la modélisation probabiliste des séries chronologiques, en se concentrant sur des modèles basés sur l'apprentissage en profondeur, basés sur Pytorch et MXNET.
Les gluont nécessitent Python 3.7 ou plus récent, et le moyen le plus simple de l'installer est via pip :
# install with support for torch models
pip install " gluonts[torch] "
# install with support for mxnet models
pip install " gluonts[mxnet] "Consultez la documentation pour plus d'informations sur la façon dont les gluont peuvent être installés.
Pour illustrer comment utiliser les gluont, nous formons un modèle Deepar et faisons des prédictions à l'aide de l'ensemble de données AirPasgers. L'ensemble de données se compose d'une seule série chronologique de numéros de passagers mensuels entre 1949 et 1960. Nous formons le modèle au cours des neuf premières années et faisons des prédictions pour les trois années 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 ()Remarque, les prévisions sont affichées en termes de distribution de probabilité et les zones ombrées représentent les intervalles de prédiction de 50% et 90%.
Si vous souhaitez contribuer au projet, veuillez vous référer à nos directives de contribution.
Si vous utilisez des gluont dans une publication scientifique, nous vous encourageons à ajouter les références suivantes aux articles connexes, en plus de toute référence spécifique au modèle pertinent pour votre travail:
@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 }
}