オンライン教育の利用予測
オンライン教育の利用予測 の例題を解決するために、Facebookが開発したProphet というツールを使用します。
Prophet は、時系列データの予測に特化したオープンソースの予測モデルです。
以下の例では、”Date”と”Usage”の2つの列を持つデータセットを想定しています。
“Date”列は各データポイントのタイムスタンプを表し、”Usage”列はその日付のオンライン教育利用者数を表します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import pandas as pdfrom prophet import Prophetdata = pd.DataFrame({ 'ds' : ['2023-01-01' , '2023-01-08' , '2023-01-15' , '2023-01-22' , '2023-01-29' , '2023-02-05' , '2023-02-12' , '2023-02-19' , '2023-02-26' , '2023-03-05' ], 'y' : [100 , 120 , 110 , 130 , 150 , 140 , 160 , 180 , 170 , 190 ] }) data['ds' ] = pd.to_datetime(data['ds' ]) model = Prophet(weekly_seasonality=True ) model.fit(data) future = model.make_future_dataframe(periods=10 , freq='W' ) forecast = model.predict(future) fig = model.plot(forecast)
この例では、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モデルによって考慮されています。
このグラフを通じて、元のデータと予測されたデータの変化、および週ごとの季節性を視覚的に理解することができます。