? Breaking News : Wir haben Chronos veröffentlicht, eine Reihe vorbereiteter Modelle für die Prognose für Zeitreihen mit Null-Shot-Zeitreihen. Chronos können genaue probabilistische Vorhersagen für neue Zeitreihen erzeugen, die während des Trainings nicht zu sehen sind. Schau es dir hier an!
Gluonts ist ein Python -Paket für die probabilistische Zeitreihenmodellierung und konzentriert sich auf Deep Learning -basierte Modelle, die auf Pytorch und MXNet basieren.
Gluonts erfordert Python 3.7 oder neuer und der einfachste Weg, dies zu installieren, ist über pip :
# install with support for torch models
pip install " gluonts[torch] "
# install with support for mxnet models
pip install " gluonts[mxnet] "Weitere Informationen zur Installation von Gluonten finden Sie in der Dokumentation.
Um zu veranschaulichen, wie Gluonts verwendet werden, trainieren wir ein Deepar-Model und machen Vorhersagen mit dem Dataset AirPassergers. Der Datensatz besteht zwischen 1949 und 1960 aus einer einzigen Zeitreihe monatlicher Passagierzahlen. Wir trainieren das Modell in den ersten neun Jahren und machen Vorhersagen für die verbleibenden drei Jahre.
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 ()Beachten Sie, dass die Prognosen in Bezug auf eine Wahrscheinlichkeitsverteilung angezeigt werden und die schattierten Bereiche die Vorhersageintervalle von 50% und 90% darstellen.
Wenn Sie zum Projekt beitragen möchten, lesen Sie bitte unsere Beitragsrichtlinien.
Wenn Sie Gluonts in einer wissenschaftlichen Veröffentlichung verwenden, empfehlen wir Ihnen, zusätzlich zu modellspezifischen Referenzen, die für Ihre Arbeit relevant sind, die folgenden Verweise zu den zugehörigen Artikel hinzuzufügen:
@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 }
}