Facebook謹製の機械学習予測ライブラリProphetで遊んでみた

ビッグデータ、機械学習、AI、自然言語処理、、、就活の時によく聞いたワードです。
よくわかってない就活生「今後AIに取って代わられる仕事ではなくて〜」
よくわかってない人事「弊社ではビッグデータを機械学習し〜」
こんなのばっかりです。大変辟易いたしました。

まあ僕もよく分かってないですけど。

 

こんにちは。18卒です。
今日はFacebookが作ったお手軽時系列データ機械学習未来予測ライブラリ、Prophetを使って、ブログのPV数を予測してみました。

※注意
Prophetのチュートリアルではありません。
使い方など詳しく知りたい方はこちらとかこちらのサイトを参考にしてください。

 

Prophetとは・・・

Facebookが作ったPythonとR用のライブラリ。無料。
数ヶ月程度の時系列数値データがあるものの未来予測・分析を簡単に行える。
統計の知識が無くても手軽に扱えるので、統計の専門家に分析を依頼しなくて良くなる。
詳細なパラメータを付与することで精度を向上できる。らしい。

 

まあそんな堅い説明はおいておいて、
ブログのPV予測してみました。

このブログは運営し始めて2ヶ月で、データ自体が非常に少ないですが、日別のPVデータをグーグルアナリティクスからcsvでダウンロードして加工してfbprophetにぶちこんでみました。

入力データは

こういうのをprophet用に加工したやつ。

向こう1ヶ月分を予測した結果。

縦軸は対数です。
黒点がデータに基づくPV数で、右側の黒点のない部分の青線が最尤推定量(予測されるもっとももっともらしい値)ですね。
薄い青のエリアが分散です。

 

このグラフからわかることは、
なんか上昇トレンドっぽいけどデータが少ないから適切に予測できてない

ということぐらいですね。

こういう曜日ごとのトレンドも出力できます。

月・水・土曜日はPVが少なくて、金曜と日曜日が多いんですね。
web全体の曜日ごと人口と比較すれば何かもっともらしい分析結果を言うことができるかもしれません。

例えば、曜日にかかわらずインターネット利用者数が一定だったとしたら、このグラフから言えるのは「月曜日と水曜日と土曜日にはもっと気合い入れた記事を書きなさい」ということになります。

 

さて、未来予測に話は戻って、
データが少ないなら分割しちゃえばいいじゃない
ということで、日別データではなく、時間別データで予測をしてみました。

2ヶ月分のデータで向こう一ヶ月を予測するのは多分無理があるので、向こう一週間分を予測します。

はいこちら。
時間別データにすると、一日の中での周期があるのでこんなギザギザな分散になります。
肝心の予測部分は、「やや上昇か?」ぐらい。

 

分析

上のトレンドのグラフはほっといて、
下の時間毎の分析を見ると、4時頃が一番アクセスがすくないようですね。
それ以外の時間帯はアクセストレンドがほぼ一定なので、8時頃にブログを更新するのがよさそう?ということになります。

 

日経平均株価でもやってみた

ブログのPVはデータが足りなすぎるので、日経平均株価でやってみました。

こちらのサイトからデータを借りて、1995年から2015年の20年分のデータから、2016〜2018年の日経平均株価を予測してみました。

設定はProphetのデフォルトのままです。

対数とったグラフですが、株価バカ上がり予想ですね。

ちなみに、実際の日経平均株価データがこちら↓

実際は2016年から下がってますね。

 

まとめ

Prophet、強力なツールですが、使い手がうんちだと使いものにならないことがわかりました。

今回はデフォルト設定のまま使いましたが、線形/非線形モデルを選択したり、周期性を設定したり、変化点(なんらかのイベント発生など)を設定することで予測の精度を向上させられるみたいです。

本気で使うならそれなりに統計の勉強をしなければなりませんね(あたりまえ)

長期間ブログ運営しておられるブロガーのみなさんは気休めに未来予測してみてはいかがでしょうか。

スポンサーリンク

レポート

Posted by nasnem