こんにちは、機械学習の講師をしている木下です!
ビックデータ自体の今、時系列データが多く取得できるようになっています。しかし、時系列データは分析・可視化・解釈が難しく、多くの人の頭を悩ませています。
多くの人が用いているのが、Prophet という非常に便利なライブラリです!Prophet を用いると簡単に分析できるのですが、その後の解釈や可視化の難しさはまだ課題として残っています。
ここでは、そんな時に便利なライブラリ plotly について Google Colaboratory を用いて初学者向けに解説していきます。
- これから時系列データ分析を始めてみたい!
- 予測した結果を綺麗に可視化してみたい!
- 動的なグラフを書き出す方法を知りたい!
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。
DX を推進する AI ・データサイエンス人材育成コース
プログラミング未経験から、AI やデータサイエンスを学ぶことのできる 6 ヶ月間のコースです。転職実績も豊富で、自走できる AI人材を多く輩出しています。
実行環境・使用するデータ
- Google Colaboratory
- Python:3.7.13
用いるデータは pandas_datareader
に含まれている Meta の株価とします。以下のようにデータを取得してみてください。
!pip install pandas_datareader --upgrade
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from pandas_datareader.yahoo.daily import YahooDailyReader
from datetime import datetime
# 取得開始日時
date_st = datetime(2015, 10, 1)
# 取得終了日時
date_fn = datetime(2022, 6, 1)
df = YahooDailyReader('META', date_st, date_fn).read()
取得したデータを確認してみます。
df.head() # 先頭 5 行の確認
ここでそれぞれの列は以下の値を示します。
- High: 高値
- Low: 安値
- Open: 始値
- Close: 終値
- Volume: 出来高
- Adj.Close: 調整後終値
データの可視化を以下のように行うことが可能です。
df['Close'].plot(); # 終値の可視化
今後はこのデータセットを用います。
Prophet を用いた基本的な処理
まずは、Prophet を用いて、時系列の分析を行います。
Proohet は Meta が公開している時系列解析向けのライブラリで、手軽にトレンドの抽出や未来の値を予測できます。
Prophet では予測する列を y
、日付データを ds
とすることに注意して、Close を予測するモデルを作成してみます。
# ライブラリの install
!pip install pystan==2.19
!pip install fbprophet
from fbprophet import Prophet # ライブラリの読み込み
# 列名の変更
data = df.reset_index().rename(columns={'Date': 'ds', 'Close': 'y'})
# インスタンス化
model = Prophet()
# 学習
model.fit(data)
これでモデルが学習できました。それでは、30 日後の値まで予測してみましょう。
# 学習データに基づいて未来を予測
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
この結果は通常、以下のように matplotlib
を用いて可視化します。
# 予測結果の可視化
model.plot(forecast)
plt.show()
トレンド性や周期性も同様に確認することができます。
# トレンド性と周期性の抽出
model.plot_components(forecast)
plt.show()
この可視化でも十分に効果的ですが、細かい予測の値などを把握するのに一苦労です。plotly を用いるとより詳細な情報を含んだグラフを表示することができます。
plotly を用いた可視化
plotly について
matplotlib
の plot
で出力した描画はグラフ上の特定の点に対して、細かな数字が確認できないといったデメリットがあります。
plotly を使用すれば、特定の点の数値を確認することができ、非常に便利です。
plotly は他にもさまざまな描画に対応しているので、公式サイトを確認してみてください。
plotly を用いた可視化
それでは実際にコーディングを見てみましょう。
# ライブラリのインストール
!pip install plotly
# ライブラリのインポート
from fbprophet.plot import plot_plotly
import plotly.offline as py
予測した forecast と model を引数に取ることで plotly を用いた可視化を行います。
# 描画
fig1 = plot_plotly(model, forecast)
# ノードブック上に出力
py.iplot(fig1)
出力されたグラフの黒点にカーソルを合わせると実際の値、青線にカーソルを合わせると予測した値を確認することができます。
また、下部のグラフをドラッグ&ドロップすることで表示範囲も動的に変更し、注目したい部分のみを表示することが可能です。
このように、動的で一度に様々な情報を得ることのできるグラフを作成できることが plotly の素晴らしいところです。
最後に
本記事では、時系列データの分析ライブラリである prophet
と可視化ライブラリである plotly
を紹介しました。
これらを使いこなすことでより深い分析を行うことができるためぜひ活用してみましょう!
もし忘れてしまったら本記事を思い出して再度復習してみてください。
以上、Python 学習している方々のお力添えになれば幸いです!
(本記事はキカガク長期コース卒業生に協力していただき作成しました)
参考リンク
まずは無料で学びたい方・最速で学びたい方へ
まずは無料で学びたい方: Python&機械学習入門コースがおすすめ
AI・機械学習を学び始めるならまずはここから!経産省の Web サイトでも紹介されているわかりやすいと評判の Python&機械学習入門コースが無料で受けられます!
さらにステップアップした脱ブラックボックスコースや、IT パスポートをはじめとした資格取得を目指すコースもなんと無料です!
最速で学びたい方:キカガクの長期コースがおすすめ
続々と転職・キャリアアップに成功中!受講生ファーストのサポートが人気のポイントです!
AI・機械学習・データサイエンスといえばキカガク!
非常に需要が高まっている最先端スキルを「今のうちに」習得しませんか?
無料説明会を週 2 開催しています。毎月受講生の定員がございますので確認はお早めに!
- 国も企業も育成に力を入れている先端 IT 人材とは
- キカガクの研修実績
- 長期コースでの学び方、できるようになること
- 料金・給付金について
- 質疑応答
ゼロから始めるプログラミング
スモールステップで Python を基礎から学べる、初学者の方向けの講座です。演習問題を通して Python の使い方を理解し、データ分析や機械学習実装のための基礎を身につけることを目指します。
DX を推進する AI ・データサイエンス人材育成コース
プログラミング未経験から、AI やデータサイエンスを学ぶことのできる 6 ヶ月間のコースです。転職実績も豊富で、自走できる AI人材を多く輩出しています。