
こんにちは、機械学習の講師をしている木下です!
ビックデータ自体の今、時系列データが多く取得できるようになっています。しかし、時系列データは分析・可視化・解釈が難しく、多くの人の頭を悩ませています。
多くの人が用いているのが、Prophet という非常に便利なライブラリです!Prophet を用いると簡単に分析できるのですが、その後の解釈や可視化の難しさはまだ課題として残っています。
ここでは、そんな時に便利なライブラリ plotly について Google Colaboratory を用いて初学者向けに解説していきます。
こんな人におすすめ!
用いるデータは 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 行の確認

ここでそれぞれの列は以下の値を示します。
データの可視化を以下のように行うことが可能です。
df['Close'].plot(); # 終値の可視化

今後はこのデータセットを用います。
まずは、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 を用いるとより詳細な情報を含んだグラフを表示することができます。
matplotlib の plot で出力した描画はグラフ上の特定の点に対して、細かな数字が確認できないといったデメリットがあります。
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 3.9.2 ドキュメント
確認する参考|Chainer チュートリアル
確認する.jpg&w=3840&q=75)
キカガクの長期コースはプログラミング経験ゼロの初学者が最先端技術を使いこなすAIエンジニアになるためのサポート体制が整っています!
実際に未経験からの転職・キャリアアップに続々と成功中です
まずは無料説明会で、キカガクのサポート体制を確認しにきてください!
説明会ではこんなことをお話します!
.png&w=3840&q=75)
AI・機械学習を学び始めるならまずはここから!経産省の Web サイトでも紹介されているわかりやすいと評判の Python&機械学習入門コースが無料で受けられます!
さらにステップアップした脱ブラックボックスコースや、IT パスポートをはじめとした資格取得を目指すコースもなんと無料です!
SHARE
AI/データサイエンス学びはじめの方におすすめの記事
コース一覧
注目記事
新着記事