飲食業の需要予測 Prophet

飲食業の需要予測

飲食業の需要予測の例を示し、Prophetを使用して予測し、結果をグラフ化する手順を説明します。

まず、必要なライブラリをインポートします。

1
2
3
4
import pandas as pd
import numpy as np
from prophet import Prophet
import matplotlib.pyplot as plt

次に、仮想的な飲食業の需要データを生成します。

1
2
3
4
5
6
7
8
9
10
np.random.seed(10)  # 乱数生成のシードを固定して再現性を保つ

# 週次周期の日付データを生成
dates = pd.date_range(start='2023-01-01', periods=104, freq='W-SAT')

# ランダムな需要データを生成
demand = np.random.randint(100, 1000, size=len(dates))

# データフレームに格納
data = pd.DataFrame({'ds': dates, 'y': demand})

Prophetを使用して予測を行い、結果をグラフ化します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Prophetモデルの初期化
model = Prophet(weekly_seasonality=True)

# モデルにデータをフィット
model.fit(data)

# 予測用データフレームの作成
future = model.make_future_dataframe(periods=12, freq='W-SAT') # 予測を12週先まで行う

# 予測を実行
forecast = model.predict(future)

# グラフ化
fig = model.plot(forecast)
plt.xlabel('Date')
plt.ylabel('Demand')
plt.title('Restaurant Demand Forecast with Weekly Seasonality')
plt.show()

上記のコードでは、仮想的な飲食業の需要データを生成し、Prophetモデルを使用して予測を行いました。

生成されたグラフは、日付に対する需要の予測を示しています。

実際のデータやニーズに合わせてコードを調整してください。

ソースコード解説

ソースコードの各部分の詳細を説明します。

1. ライブラリのインポート:

  • pandasはデータ操作のためのライブラリです。
  • numpyは数値計算のためのライブラリです。
  • ProphetはFacebookが開発した時系列予測ライブラリです。
  • matplotlib.pyplotはデータの可視化のためのライブラリです。

2. 乱数生成のシードの固定:

  • np.random.seed(10)は、乱数生成のシードを固定して再現性を保つためのコードです。

3. 週次周期の日付データの生成:

  • pd.date_rangeを使用して、’2023-01-01’から104週間分の週次周期の日付データを生成します。

4. ランダムな需要データの生成:

  • np.random.randintを使用して、100から1000までのランダムな需要データを生成します。

5. データフレームへの格納:

  • pd.DataFrameを使用して、日付データと需要データを組み合わせてデータフレームを作成します。

6. Prophetモデルの初期化:

  • Prophet(weekly_seasonality=True)を使用して、Prophetモデルを初期化します。
    weekly_seasonality=Trueは週次周期性を考慮するためのパラメータです。

7. モデルへのデータのフィット:

  • model.fit(data)を使用して、データをモデルにフィットさせます。

8. 予測用データフレームの作成:

  • model.make_future_dataframeを使用して、12週先までの予測用のデータフレームを作成します。

9. 予測の実行:

  • model.predictを使用して、予測を実行します。

10. グラフ化:

  • model.plotを使用して、予測結果をグラフ化します。
  • plt.xlabelplt.ylabelを使用して、x軸とy軸のラベルを設定します。
  • plt.titleを使用して、グラフのタイトルを設定します。
  • plt.showを使用して、グラフを表示します。

このソースコードは、ランダムな需要データを使用してProphetモデルを構築し、週次周期性を考慮した需要の予測を行います。

予測結果はグラフとして表示されます。

ただし、具体的なデータやパラメータによって結果は異なるため、実際のデータに合わせて調整してください。

結果解説

グラフの特徴や内容について説明いたします。

Prophetによる需要予測のグラフは、横軸が日付(週次で表示されている場合は週ごとの日付)、縦軸が需要(または売上など)を表しています。

以下に、典型的なProphetの予測グラフで見られる要素について説明します。

1. 黒い点線:

実測データの点線が表示されます。
これは、過去の実際の需要データを示しています。

2. 青い線と範囲:

黒い線は、Prophetモデルによって予測された需要の中央値(予測値)を表しています。
また、周囲に淡い色で描かれた領域は、不確実性を示しており、予測の信頼区間を表しています。

3. 週次周期性の影響:

グラフに週次周期性の影響が現れます。
通常、週末に需要が上昇する業界では、週末にピークが現れる傾向があるでしょう。

4. 未来の予測:

青い線が実測データの最後から伸びている部分は、未来の予測を示しています。
これにより、将来の需要の予測値と信頼区間を確認することができます。

5. トレンド:

グラフ内のデータポイントや線の動きに沿ったトレンドが観察できるかもしれません。

需要が増加している、減少している、あるいは安定しているかを確認できます。

グラフを通じて、過去の需要データからProphetモデルが予測した将来の需要の変動パターンと、それに伴う不確実性を視覚的に理解することができます。

あなたのデータに合わせてこのグラフを解釈し、適切なビジネス判断を行うことが重要です。