【AutoGluon v0.5】新たに追加された時系列予測を使ってみました

はじめに

AutoGluon v0.5から新たに時系列予測が追加されたので使ってみました。

時系列予測といえば同じawslabsが開発しているGluonTSというのもあります。

AutoGluonの時系列予測は裏でGluonTSを使用しているようです。

結果

以前GluonTSで使用したのと同じデータを用いて予測してみました。
touch-sp.hatenablog.com
結果は冒頭の図になります。

Pythonスクリプト

インポート

import pandas as pd
from matplotlib import pyplot as plt
from autogluon.timeseries import TimeSeriesPredictor, TimeSeriesDataFrame

データの準備

url = 'https://raw.githubusercontent.com/numenta/NAB/master/data/realTweets/Twitter_volume_AMZN.csv'

df = pd.read_csv(url, parse_dates = ["timestamp"])
df['columnid'] = 0

test_data = TimeSeriesDataFrame.from_data_frame(
    df,
    id_column = 'columnid',
    timestamp_column="timestamp",
)

prediction_length = 24

train_data = test_data.slice_by_timestep(slice(-prediction_length))

学習

predictor = TimeSeriesPredictor(
    path= 'autogluon-forecast',
    target = 'value',
    prediction_length = prediction_length,
    eval_metric = 'MAPE'
)

predictor.fit(train_data = train_data)

予測

predictions = predictor.predict(train_data)

結果の図示

train_data_value = train_data.loc[0]['value']
pred_value = predictions.loc[0]
actual_value = test_data.loc[0]['value'][-prediction_length:]

plt.plot(train_data_value[-100:], label = 'Training Data', color = 'blue')
plt.plot(pred_value['mean'], label = 'Mean Forecasts', color = 'red')
plt.plot(actual_value, label = 'Actual', color = 'green')

plt.fill_between(
    pred_value.index, pred_value['0.1'], pred_value['0.9'], color = 'red', alpha = 0.1
)

plt.legend()
plt.show()

動作環境

Ubuntu 20.04 on WSL2
Python 3.9.5

関連記事

touch-sp.hatenablog.com