飲食業の需要予測
飲食業の需要予測の例題をProphetを使用して解いてみましょう。
まず、仮想のデータセットを用意しましょう。
例えば、過去4年間のあるレストランの月間売上データを持っているとします。
以下にデータの例を示します:
1 | 日付,売上 |
それでは、PythonのProphetライブラリを使用してこのデータセットで需要予測を行ってみましょう。
まず、Prophetライブラリがインストールされていない場合は、次のコマンドを使用してインストールします:
1 | !pip install prophet |
インストールが完了したら、以下のコードを使って進めます。
以下は、提供されたデータセットを使用してProphetを使った需要予測を行う例です:
1 | import pandas as pd |
この例では、まず必要なライブラリをインポートし、Prophetもインポートしています。
次にデータセットを読み込み、列名をProphetの予測モデルに合わせて変更しています。
その後、Prophetモデルを作成し、データにフィットさせ、予測のための未来の日付を生成します。
最後に、モデルを使用して未来の日付の売上を予測し、予測結果をグラフ化しています。
'データセットのパス.csv'
の部分は、実際のデータセットファイルのパスに置き換えてください。
また、make_future_dataframe
のperiods
パラメータを調整して、予測する未来の期間の数を指定することもできます。
ソースコード解説
以下、コードの各部分の詳細な説明です。
1. ライブラリのインポート:
1 | import pandas as pd |
pandas
: データ操作や分析のためのPythonライブラリ。Prophet
: Facebookが開発した時系列予測ライブラリ。このライブラリを使用して時系列モデルを構築し、予測を行う。matplotlib.pyplot
: グラフを描画するためのPythonライブラリ。
2. データセットの読み込み:
1 | data = pd.read_csv('データセットのパス.csv') |
CSV形式のデータセットを読み込み、data
という名前のDataFrame(表形式のデータ構造)に格納しています。
3. データの準備:
1 | data = data.rename(columns={'日付': 'ds', '売上': 'y'}) |
データのカラム名をProphetの予測モデルに合わせるために変更しています。
'日付'
カラムは時系列の日付を表し、'売上'
カラムは予測する対象の数値データ(売上)を表しています。
4. Prophetモデルの作成:
1 | model = Prophet() |
Prophetのモデルをインスタンス化します。
このモデルは、時系列データからトレンド、季節性、ホリデーエフェクトなどを学習し、予測を行うために使用されます。
5. モデルのデータへのフィッティング(適合):
1 | model.fit(data) |
data
に格納されたデータを使用して、Prophetモデルに適合させます。
モデルはここでデータのトレンドや季節性を学習します。
6. 未来の日付の生成:
1 | future_dates = model.make_future_dataframe(periods=12, freq='M') |
予測を行うための未来の日付を生成します。
periods
で指定した期間(ここでは12ヶ月)分の日付を生成し、freq
で頻度を’M’(月ごと)として指定しています。
7. 予測の実行:
1 | forecast = model.predict(future_dates) |
未来の日付に対して予測を実行し、forecast
というDataFrameに予測結果を格納します。
8. 予測結果のグラフ化:
1 | model.plot(forecast, xlabel='Date', ylabel='Sales') |
予測結果をグラフ化して表示します。
x軸には日付を、y軸には売上を表示します。
また、グラフのタイトルも設定されています。
このコードは、Prophetを使用して時系列データの売上予測を行い、その結果を可視化する一連の手順を示しています。
結果解説
グラフの内容を詳しく説明します。
1. データポイント(黒い点):
グラフ上に表示される黒い点は、実際の売上データポイントを表しています。
これらの点は、元のデータセットから取得され、予測モデルの作成に使用されました。
2. 予測値(青い線):
グラフ上に表示される青い線は、Prophetモデルによって予測された売上の値を表しています。
この線は、過去のデータからのトレンドや季節性を考慮して、将来の売上を予測したものです。
3. 不確実性範囲(青い領域):
グラフ上に表示される青い領域は、予測値の不確実性範囲を表しています。
Prophetは、予測の信頼性を示すために、予測値の上下に不確実性範囲を示します。
この範囲は、予測の信頼性が高いほど狭くなります。
このグラフを通じて、過去のデータからのトレンドや季節性を考慮した予測値が表示されます。
また、不確実性範囲も示されるため、予測の信頼性を評価することができます。