「Prophetで遊んでみる」の続きで,ビットコインの価格の推移を予測してみました.
Datasets
- From: 2017-05-27
- To: 2017-09-08
- 最近のトレンドとしては上がり調子ということらしい.
- 週ごとの傾向としては「火曜日に買って日曜に売れ」ということらしい.
胡散臭いので,もう少し調べてみる.
性能検証
- 訓練データ: 2017-05-27 〜 2017-08-31
- 検証データ: 2017-09-01 〜 2017-09-08
としてSMAPE1で性能を調べてみる.
- 期間を少し変えるだけで,weeklyの傾向が変わってる.どゆこと??
changepoint_prior_scale=0.05(default)の場合
y_true = forecast["y"].values
y_pred = forecast["yhat"].values
print "FORECAST SMAPE: %.3f" % smape(y_true, y_pred)
# FORECAST SMAPE: 4.238
changepoint_prior_scale=0.01の場合
y_true = forecast["y"].values
y_pred = forecast["yhat"].values
print "FORECAST SMAPE: %.3f" % smape(y_true, y_pred)
# FORECAST SMAPE: 4.197
デフォルトよりは少し改善
検証データの期間中の中央値(参考)
y_median = np.asarray([np.median(y_true)] * len(y_true))
print "MEDIAN SMAPE: %.3f" % smape(y_true, y_median)
# MEDIAN SMAPE: 2.922
将来のデータの中央値なんてわかるわけないけど,目安として出す.
中央値を使ったほうが性能は良いので,まだまだ予測の改善は必要そう.
まとめ
- Prophetを使ってビットコインの価格推移を予測
- weeklyの傾向は,わずかな期間の変動で変わるので当てにならなさそう.
- changepoint_prior_scaleの最適なパラメータ求めることで多少は改善される?