オンライン教育の利用予測
オンライン教育の利用予測の例題を解決するために、Facebookが開発したProphetというツールを使用します。
Prophetは、時系列データの予測に特化したオープンソースの予測モデルです。
以下の例では、”Date”と”Usage”の2つの列を持つデータセットを想定しています。
“Date”列は各データポイントのタイムスタンプを表し、”Usage”列はその日付のオンライン教育利用者数を表します。
1 | import pandas as pd |
この例では、2023年1月1日から2023年3月5日までの10個のデータポイントを持つ入力データを定義しています。
weekly_seasonality=True
パラメータは、モデルがデータの週次周期性を考慮するようにします。
make_future_dataframe
関数は、10週間の追加予測用データフレームを作成するために使用されます。
freq='W'
パラメータは、頻度を週次に設定します。
最後に、plot
関数を使用して予測結果をグラフで可視化します。
これは単なる基本的な例であり、具体的な要件に応じて入力データやパラメータをカスタマイズすることができます。
ソースコード解説
提供されたコードは、Prophetという時系列予測モデルを用いて、一連の時系列データの予測を行う基本的な手順を示しています。以下に各部分の詳細説明を示します。
1. 必要なライブラリのインポート:
まず、必要なライブラリをインポートしています。pandas
ライブラリはデータの操作や整形、Prophet
ライブラリは時系列予測モデルを構築するために使用されます。
2. 入力データの定義:
data
という名前のデータフレームを作成しています。
このデータフレームには、’ds’ 列に日付情報、’y’ 列に対応する時系列データ(ここでは例として利用回数)を含むデータが格納されています。
3. 日付データの整形:
‘ds’ 列は日付を文字列として格納しています。
そのため、pd.to_datetime
を使用してこの列を日付型に変換しています。
これにより、日付データを効果的に処理できるようになります。
4. Prophetモデルの初期化とフィッティング:
Prophet
クラスのインスタンスを作成し、weekly_seasonality=True
を設定して週次の周期性を考慮するようにしています。
その後、このモデルに data
データフレームを適合させています。
5. 予測用の未来データの作成:
予測のために、元のデータ期間に加えて未来の期間を含むデータフレーム future
を作成しています。periods=10
と freq='W'
を指定して、未来の10週間分の日付データを生成しています。
6. 予測の実行:
model.predict(future)
を呼び出すことで、未来の期間に対する予測を行います。
予測結果は forecast
というデータフレームとして返されます。
7. 予測結果のプロット:
model.plot(forecast)
を呼び出すことで、元のデータと予測結果を含むグラフが表示されます。
このグラフを通じて、予測の範囲、予測された時系列データの変化、週次の季節性などが視覚的に確認できます。
このコードは、Prophetモデルを使って時系列データの予測を行う基本的な手法を示しており、実際のデータに適用する際には、データの特性に合わせて適切な調整が必要です。
結果解説
グラフは、以下の要素を含んでいます。
1. 黒い点:
元のデータポイントを表しており、各データポイントの x 軸には日付(’ds’ 列の値)、y 軸には対応する時系列データの値(’y’ 列の値)が配置されています。
2. 青い線と青い範囲:
予測の結果として、黒い線が描かれ、これは予測された時系列データの値を示しています。
青い範囲は、予測の不確実性を示すもので、予測された値の上下に広がっています。
3. 縦軸 (y 軸):
利用回数などの時系列データの値を表します。
4. 横軸 (x 軸):
日付を示し、時間の経過に伴うデータの変化を示しています。
青い点と黒い線が連続している範囲が、過去から未来への時系列の推移を表しています。
5. 週次の周期性:
グラフ上に縦線が表示され、週ごとの周期性を示しています。
この週次の周期性は、Prophetモデルによって考慮されています。
このグラフを通じて、元のデータと予測されたデータの変化、および週ごとの季節性を視覚的に理解することができます。