? Breaking News : Lanzamos Chronos , un conjunto de modelos previos a los practicos para pronósticos de series de tiempo de cero disparos. Los cronos pueden generar predicciones probabilísticas precisas para nuevas series de tiempo no vistas durante el entrenamiento. ¡Compruébalo aquí!
Gluonts es un paquete de Python para el modelado de series temporales probabilísticas, centrándose en modelos basados en el aprendizaje profundo, basado en Pytorch y MXNet.
Gluonts requiere Python 3.7 o más nuevo, y la forma más fácil de instalarlo es a través de pip :
# install with support for torch models
pip install " gluonts[torch] "
# install with support for mxnet models
pip install " gluonts[mxnet] "Consulte la documentación para obtener más información sobre cómo se pueden instalar Gluonts.
Para ilustrar cómo usar Gluonts, entrenamos un modelo profundo y hacemos predicciones utilizando el conjunto de datos AirPassengers. El conjunto de datos consta de una sola serie temporal de números mensuales de pasajeros entre 1949 y 1960. Entrenamos el modelo en los primeros nueve años y hacemos predicciones durante los tres años 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 ()Tenga en cuenta que los pronósticos se muestran en términos de una distribución de probabilidad y las áreas sombreadas representan los intervalos de predicción del 50% y 90%.
Si desea contribuir al proyecto, consulte nuestras pautas de contribución.
Si usa Gluts en una publicación científica, le recomendamos que agregue las siguientes referencias a los documentos relacionados, además de cualquier referencia específica del modelo que sea relevante para su trabajo:
@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 }
}