Time-series-walk-forward-validation
提供:Dev Guides
時系列-ウォークフォワード検証
時系列モデリングでは、時間の経過に伴う予測の精度が低下するため、実際のデータでモデルを再トレーニングして、さらに予測できるようになると、より現実的なアプローチになります。 統計モデルのトレーニングには時間がかかりませんので、最も正確な結果を得るためには、ウォークフォワード検証が最も推奨されるソリューションです。
データにワンステップウォークフォワード検証を適用して、以前に得た結果と比較してみましょう。
[333]で:
prediction = []
data = train.values
for t In test.values:
model = (ExponentialSmoothing(data).fit())
y = model.predict()
prediction.append(y[0])
data = numpy.append(data, t)
[335]で:
test_ = pandas.DataFrame(test)
test_['predictionswf'] = prediction
[341]で:
plt.plot(test_['T'])
plt.plot(test_.predictionswf, '--')
plt.show()
[340]で:
error = sqrt(metrics.mean_squared_error(test.values,prediction))
print ('Test RMSE for Triple Exponential Smoothing with Walk-Forward Validation: ', error)
Test RMSE for Triple Exponential Smoothing with Walk-Forward Validation: 11.787532205759442
モデルのパフォーマンスが大幅に向上していることがわかります。 実際、傾向は非常に厳密に追跡されるため、プロット上で予測が実際の値と重なっています。 ARIMAモデルにもウォークフォワード検証を適用してみてください。