【第1弾】Facebook開発の「Prophet」で時系列分析に挑戦【LSTMとSARIMAと比較して扱いやすいのか?】
時系列データ分析に挑んでいる。自分にとっては夢がある。
これまで、LSTMとSARIMAを利用して「時系列データ分析」のスキル向上に励んできた。しかし、LSTMやSARIMAのモデル構築を、一から自分の手で構築することになった場合には、まだまだ実力不足な点は否めない。
「時系列予測は学問として大きな一分野。正確かつ安定的な予測を行うために、経験と知識の両方が必要。さらに、企業の中で使いこなすにはビジネス理解が不可欠。」といった解釈もあり、正直、素人が手を出す分野ではない気がする。
「Prophet」とは――Facebook製時系列予測OSSは何が便利なのか:非統計家が高精度な時系列予測を行えるProphet(前編)(1/2 ページ) - @IT (atmarkit.co.jp)
しかし、最近実務でよく使われ、とにかく使いやすいとされる、Facebookが開発した時系列予測のオープンソースソフトウェア(OSS)ライブラリ「Prophet」を試してみたいと思う。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■時系列データは、アメリカンフットボールプレイヤーのWikiアクセス数■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
レコード数は2904行。
2007年12月10日から2016年1月20日まで。
図1.アメリカンフットボールプレイヤーのWikiアクセス数
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■モデル構築、推測■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
物凄く短い行数で、モデル構築から推論まで実現できている点に驚きを少し感じた。
make_future_dataframe関数は、予測した期間を追加したデータフレームが得られるとのこと。え~と、まったく理解できない。そこで、形を見てみることにする。
・future_df.shape:(3270,1)
・dfは、(2905,2)
・make_future_dataframe関数の引数は、365
このことから、3270=2905+365という数式が見えてくる。
make_future_dataframe関数を実行することで、2016年1月21日から2017年1月19日までの365日が追加されていることが理解できた。
時系列解析ライブラリProphet 公式ドキュメント翻訳3(クイックスタート編) - Qiita
推論結果をプロットした結果は、下記のとおりである。
散布図が実測値になっているが、当てはまりが良さそうとのこと。
ただ、濃い青線と薄い青線は何を示しているのかが分からない。
どうやら、青い線が点予測の線(yhat)で、薄い青が信頼区間(yhat_lowerとyhat_upper)のようだ。
図2 推論結果
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■次回■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
モデル構築時のパラメータを指定した場合にどうなるかを見てみたい。