? Последние новости : мы выпустили Chronos , набор предварительно предварительно выставленных моделей для прогнозирования временных рядов с нулевым выстрелом. Chronos может генерировать точные вероятностные прогнозы для новых временных рядов, не наблюдаемых во время обучения. Проверьте это здесь!
Gluonts - это пакет Python для вероятностного моделирования временных рядов, фокусирующийся на моделях, основанных на глубоком обучении, на основе Pytorch и MXNet.
Gluonts требует Python 3.7 или новее, и самый простой способ установить его через pip :
# install with support for torch models
pip install " gluonts[torch] "
# install with support for mxnet models
pip install " gluonts[mxnet] "Смотрите документацию для получения дополнительной информации о том, как можно установить глюонты.
Чтобы проиллюстрировать, как использовать глюонты, мы тренируем модель Deepar и делаем прогнозы, используя набор данных Airpassengers. Набор данных состоит из единого временного ряда ежемесячных пассажирских номеров в период с 1949 по 1960 год. Мы тренируем модель в первые девять лет и делаем прогнозы на оставшиеся три года.
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 ()Обратите внимание, что прогнозы отображаются с точки зрения распределения вероятностей, а затененные области представляют собой 50% и 90% интервалов прогнозирования.
Если вы хотите внести свой вклад в проект, пожалуйста, обратитесь к нашим руководящим принципам взноса.
Если вы используете Gluonts в научной публикации, мы рекомендуем вам добавить следующие ссылки на соответствующие документы, в дополнение к любым специфическим для модели ссылок, которые имеют отношение к вашей работе:
@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 }
}