Prophet利用方法
お手軽に時系列分析出来るProphtについての導入記事です。
前提
ver0.2 (2017/9/22時点)で記事を書いています。
参考資料
- https://facebookincubator.github.io/prophet/
- paperで論文読めます
- https://github.com/facebookincubator/prophet
- こんな機能ないかな〜?は大抵issueに上がっててリリース待ち(白目)
- https://www.slideshare.net/hoxo_m/prophet-facebook-76285278
- 日本語でさらっと理解したい人はこちら
- ver0.1.1のスライドっぽいのでver0.2と微妙にパラメタの名前違ってたりする
Prophetってなに?
導入方法
conda install -c conda-forge fbprophet
※2017/9/26現在ではAnacondaのfbprohetがver0.1.1なのでpip install推奨 一回エラー出るかもしれないけど、pystanが入ればインストール成功します。
pip install fbprophet
利用方法
- https://facebookincubator.github.io/prophet/docs/quick_start.html
- 書いてる通りでそのまま使える。
- 注意点
【例】
DS | Y |
---|---|
2007-12-10 | 250 |
2007-12-11 | 128 |
パラメタ調整
ver0.2に上がって色々パラメタが増えてるヤッタネ!!!
季節性調整
https://facebookincubator.github.io/prophet/docs/seasonality_and_holiday_effects.html →Specifying Seasonalities参照
- 年周期がある場合、yearly_seasonalityを設定(defaultでTrue)
m = Prophet(yearly_seasonality=True)
forecast = m.fit(df).predict(future)
- 週周期がある場合、weekly_seasonalityを設定(defaultでTrue)
m = Prophet(weekly_seasonality=True)
forecast = m.fit(df).predict(future)
- 月周期とか隔週周期とか入れたい場合はadd_seasonalityを利用
m = Prophet(weekly_seasonality=False) m.add_seasonality(name='monthly', period=30.5, fourier_order=5) forecast = m.fit(df).predict(future)
祝日・イベント調整
https://facebookincubator.github.io/prophet/docs/seasonality_and_holiday_effects.html →Modeling Holidays and Special Events参照
- holidaysパラメタにデータを渡す。
m = Prophet(holidays=holidays) forecast = m.fit(df).predict(future)
- 注意点
【例】
holiday | ds | lower_window | upper_window |
---|---|---|---|
キャンペーン | 2017-12-23 | -7 | 7 |
クリスマス | 2017-12-25 | -1 | 0 |
prior_scaleとかadd_regressor は時間ができたら調べる…
検証
- https://facebookincubator.github.io/prophet/docs/diagnostics.html
- cross_validationが実装されています。
- まだ利用していないので時間ができたら追記します。