LoginSignup
41
52

More than 5 years have passed since last update.

Prophetで遊んでみる

Last updated at Posted at 2017-09-07

どういう話かというと,時系列解析は色々ややこしくて良くわからないけど,とりあえずデータは持っているので試してみたいといったときにオススメのライブラリProphet1 2の紹介です.

Prophetとは

  • Facebook謹製の時系列解析ツール
  • 時系列解析に詳しくなくてもデータを突っ込むだけで解析してくれる.
  • RとPythonで使える.

性能を発揮させやすい条件

  • 数ヶ月(可能なら1年)の時系列データがある
  • イベントのタイミングは既知

すごいところ

  • 欠損値や異常値があっても大丈夫
  • 傾向の変化にも対応してくれる.
  • 熟練した分析者と同程度の性能をデフォルト値で出せたこともある.
  • 時系列解析が苦手な人でも使える.

Prophetの仕組み

下記4つの重ね合わせによって予測.

  • 自動検出した傾向の変化点
  • 年間の大まかな流れ
  • 週ごとの流れ
  • ユーザー提供のイベント情報

インストール

pip install fbprophet

チュートリアル

アメフト選手のペイトン・マニング氏3のWikipediaの将来のページ閲覧数の予測を題材としています.

wget https://raw.githubusercontent.com/facebookincubator/prophet/master/examples/example_wp_peyton_manning.csv
import pandas as pd
import numpy as np
from fbprophet import Prophet
df = pd.read_csv('../examples/example_wp_peyton_manning.csv')
df['y'] = np.log(df['y'])
df.head()

学習

データをもとに学習する.

m = Prophet()
m.fit(df);

予測データの準備

将来365日分とか出したかったら下記のように書く.

future = m.make_future_dataframe(periods=365)
future.tail()

image.png

予測結果の表示

forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

image.png

将来の予測推移

m.plot(forecast);

image.png

成分ごとの表示

m.plot_components(forecast);

image.png

次の記事 「Prophetでビットコインの価格推移を予測してみる」です.

References


  1. Taylor, Prophet: forecasting at scale, 2017. 

  2. facebookincubator, prophet 

  3. Peyton Manning 

41
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
52