1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Prophetで簡単に時系列予測をする

Last updated at Posted at 2020-11-07

#1.はじめに
最近簡単に時系列予測をするために、Prophetを使ってみた。
せっかくなので導入から動かすところまでを共有しようと思い、記事にしました。

  • 動作環境
  • OS : Windows10
  • Python : 3.8.3 // Miniconda 4.9.1
  • Visual Studio Community : 2019

#2.Prophetって何?
Prophetはfacebook社がOSS(MITライセンス)として公開している時系列の予測パッケージ。
細かい理論に関してはここで触れないが、一般化加法モデルを用いて予測が行われている。

公式ページ
github

#3.検証用に仮想環境を作成、仮想環境に切り替え

#prophet_envという仮想環境をpython3.7系で作成(3.8系だとfbprophet 0.6に非対応)
conda create -n prophet_env python=3.7

#base環境から作成したprophet_env仮想環境に切り替える
conda activate prophet_env

#4.導入~動作確認
まずは、Visual Stuido Communityをインストールしておく。
※C++ Compilerが必要になる
Visual Studio Code のサイト

その上で以下ライブラリを導入する

#ProphetはPyStanに依存している為に導入
conda install plotly -y

#fbprophetを導入(2020/11/1時点のバージョンは0.7.1だったがエラーが出たので0.6)
conda install -c conda-forge fbprophet==0.6

#環境がminicondaなので・・(numpyやpandasは↑でたまたま一緒に導入されたので個別には入れなかった)
conda install matplotlib

下記コマンドでエラーが出なければ導入成功

from fbprophet import Prophet

#5.実際に使ってみる

今回はサンプルデータセットとしてシンプルな「AirPassengers」というデータセットを使用する
Monthカラムに時系列部分、Passengersカラムに飛行機乗客数の推移が入っている。
データセットのリンク

Month #Passengers
1949/1/1 112
1949/2/1 118
1949/3/1 132

5-1:ファイル読み込みまで

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet

#AirPassengersのcsvを読み取る
df = pd.read_csv('AirPassengers.csv')

5-2:Prophetを学習

#Prophetではカラム名をdsとyに変更する必要があるので変更する
df.columns = ['ds', 'y']

#今回はProphetにデータフレーム後ろから10番目までを学習(fit)させる
m = Prophet()
m.fit(df[:-10])

5-3:Prophetで予測

'''
periods=10:10マス分予測させる
freq='M':単位は「Month」
 →つまり10か月分予測させるという意味
'''
future = m.make_future_dataframe(periods=10, freq='M')

forecast = m.predict(future)

#forecastの結果を図示する
fig = m.plot(forecast)

↓のように表示されるはず。
※黒い点は学習データ
追加されたkernel

#6.最後に
どうだっただろうか?
プログラム自体は簡単に動作するので、むしろ導入のほうが手こずるかもしれない。
バージョンが違ったりするとどこかでエラーになるかもしれないし、実際私も最初はそこで躓いた。
(PyStan、libpython等はfbprophet==0.6で一緒に導入されたので最終的には個別では導入しなかった)
お手軽なのでぜひ試してみてほしい。

1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?