5.14.1
Prophet入門
まとめ
- Prophetの基本的な使い方(学習・予測・成分プロット)を合成データで試す。
- 月次の季節性と週次の周期を含むデータで、Prophetの分解能力を確認する。
- 予測結果と実データの比較で、モデルの精度と限界を把握する。
Meta(Facebook)が公開した時系列予測のためのOSSライブラリです。インストール方法はInstallation in Pythonを参照してください。基本的にはpip install prophetを実行すればインストールできます。
Taylor, Sean J., and Benjamin Letham. “Forecasting at scale.” The American Statistician 72.1 (2018): 37-45.
| |
実験に使用するデータ #
1年間のデータを用意します。偶数の月は数値が減少する傾向があります。また、週ごとに周期的な数値を取ります。 2020/1/1 ~ 2020/12/31 の期間のデータです。
| |

時系列データを構成する要素 #
「時系列データ」という言葉にはいろいろな種類のデータが含まれます。 ここでは、
- データはタイムスタンプと数値のみ
- タイムスタンプは全て欠損がなく等間隔(evenly spaced)に並んでいる
ようなデータを扱います。
| |

Prophetで2021年の1~3月を予測する #
2020/1/1 ~ 2020/12/31 のデータを使って、さらに先の3ヶ月を予測してみます。
データは一年しかないので yearly_seasonality=False、週ごとに周期性が見られるので daily_seasonality=Trueを指定します。
| |
| |
Initial log joint probability = -32.1541
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
99 772.276 5.98161e-05 56.7832 1 1 135
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
131 772.59 0.00128893 157.592 1.465e-05 0.001 217 LS failed, Hessian reset
181 772.678 3.78737e-05 49.0389 6.852e-07 0.001 326 LS failed, Hessian reset
199 772.681 1.42622e-06 43.2231 0.6929 0.6929 350
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
230 772.681 6.80165e-06 56.0478 7.185e-08 0.001 432 LS failed, Hessian reset
245 772.681 4.06967e-08 48.5475 0.1802 0.8285 454
Optimization terminated normally:
Convergence detected: relative gradient magnitude is below tolerance

周期性の指定の影響 #
| |
Initial log joint probability = -32.1541
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
99 1076.54 0.000445309 68.8033 1 1 133
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
199 1078.13 0.000151685 92.7241 1 1 256
Iter log prob ||dx|| ||grad|| alpha alpha0 # evals Notes
246 1078.14 1.78997e-06 84.0649 1.52e-08 0.001 353 LS failed, Hessian reset
261 1078.14 3.82403e-08 101.692 0.2973 1 372
Optimization terminated normally:
Convergence detected: relative gradient magnitude is below tolerance

- Prophetのモデルの中身 — 内部モデルの仕組みを詳細に理解
- Prophetのパラメーター — 主要パラメーターの役割を整理
- Prophetを使ってみる — Prophetで時系列を分解して予測