2023 年の最新情報: Prophet の将来に関する計画については、このブログ投稿で説明します: 2023 年以降の facebook/prophet
Prophet は、非線形傾向が年、週、日の季節性と休日の影響に適合する加算モデルに基づいて時系列データを予測する手順です。これは、強い季節的影響がある時系列や複数の季節の履歴データに最適に機能します。 Prophet はデータの欠落や傾向の変化に対して堅牢であり、通常は外れ値を適切に処理します。
Prophet は、Facebook のコア データ サイエンス チームがリリースしたオープンソース ソフトウェアです。 CRAN および PyPI でダウンロードできます。
Prophet は CRAN パッケージなので、 install.packages
を使用できます。
install.packages( ' prophet ' )
インストール後、すぐに使い始めることができます。
install.packages( ' remotes ' )
remotes :: install_github( ' facebook/prophet@*release ' , subdir = ' R ' )
cmdstanr
という実験的な代替 stan バックエンドを選択することもできます。 prophet
インストールしたら、次の手順に従ってrstan
の代わりにcmdstanr
バックエンドとして使用します。
# R
# We recommend running this in a fresh R session or restarting your current session
install.packages(c( " cmdstanr " , " posterior " ), repos = c( " https://mc-stan.org/r-packages/ " , getOption( " repos " )))
# If you haven't installed cmdstan before, run:
cmdstanr :: install_cmdstan()
# Otherwise, you can point cmdstanr to your cmdstan path:
cmdstanr :: set_cmdstan_path( path = < your existing cmdstan > )
# Set the R_STAN_BACKEND environment variable
Sys.setenv( R_STAN_BACKEND = " CMDSTANR " )
Windows では、R にはコンパイラが必要なため、 rstan
が提供する指示に従う必要があります。重要な手順は、パッケージをインストールする前に Rtools をインストールすることです。
カスタム Stan コンパイラ設定がある場合は、CRAN バイナリではなくソースからインストールします。
Prophet は PyPI 上にあるため、 pip
使用してインストールできます。
python -m pip install prophet
インストール後、すぐに使い始めることができます。
Prophet は conda-forge を通じてインストールすることもできます。
conda install -c conda-forge prophet
マージされた最新のコード変更を取得するには、このリポジトリのクローンを作成し、ソースから手動でビルドします。これは安定しているという保証はありません。
git clone https://github.com/facebook/prophet.git
cd prophet/python
python -m pip install -e .
デフォルトでは、Prophet はモデルの実行可能ファイルをコンパイルするためにcmdstan
の修正バージョンを使用します (必要に応じてダウンロードしてインストールします)。これが望ましくなく、独自の既存のcmdstan
インストールを使用したい場合は、環境変数PROPHET_REPACKAGE_CMDSTAN
False
に設定できます。
export PROPHET_REPACKAGE_CMDSTAN=False ; python -m pip install -e .
コンパイラー (gcc、g++、build-essential) と Python 開発ツール (python-dev、python3-dev) がインストールされていることを確認してください。 Red Hat システムでは、パッケージ gcc64 および gcc64-c++ をインストールします。 VM を使用している場合は、Prophet をインストールするには少なくとも 4GB のメモリが必要であり、Prophet を使用するには少なくとも 2GB のメモリが必要であることに注意してください。
Windows でcmdstanpy
を使用するには、mingw-gcc などの Unix 互換の C コンパイラが必要です。 cmdstanpy が最初にインストールされている場合は、 cmdstanpy.install_cxx_toolchain
コマンドを使用してインストールできます。
y
が欠落している日付の予測、履歴、相互検証メトリクスのゼロ除算エラーが含まれます。NDArray[np.float_]
をNDArray[np.float64]
に変更しました。 holidays
データを更新しました。Prophet()
のインスタンス化に引数のscaling
追加しました。 absmax
スケーリング (最大値で除算) の代わりに、 y
でminmax
スケーリングを許可します。デフォルトではscaling='absmax'
となり、以前のバージョンの動作が維持されます。Prophet()
のインスタンス化に引数holidays_mode
追加しました。休日リグレッサーに季節性リグレッサーとは異なるモードを設定できるようにします。指定されていない場合、 holidays_mode
seasonality_mode
と同じ値をとり、以前のバージョンの動作が維持されます。Prophet
オブジェクトにpreprocess()
とcalculate_initial_params()
という 2 つのメソッドを追加しました。これらを呼び出す必要はなく、モデル フィッティング プロセスは変更されません。その目的は、データが stan モデルに渡される前に実行される前処理ステップ ( y
スケーリング、フーリエ級数の作成、回帰子スケーリング、チェンジポイントの設定など) を明確にすることです。extra_output_columns
cross_validation()
に追加しました。ユーザーは、 predict()
から追加の列を指定して、 ds
およびyhat
とともに最終出力に含めることができます (例: extra_output_columns=['trend']
。hdays
モジュールは最後のバージョンで非推奨となり、現在は削除されています。 holidays
データを更新しました。holidays
パッケージのみに依存しています。holidays
データを更新しました。.predict()
が最大 10 倍高速化されました。train()
およびpredict()
パイプラインの速度が少なくとも 1.5 倍向上しました。construct_holiday_dataframe()
のバグを修正しましたholidays
データを更新しました。pystan2
依存関係をcmdstan
+ cmdstanpy
に置き換えました。stan
モデル コード、相互検証メトリック計算、休日の改善。holidays
とpandas
に関連するバグ修正holidays
とpandas
パッケージの上流の変更に関連するバグを修正します。cmdstanpy
バックエンドが Python で利用可能になりましたProphet は MIT ライセンスに基づいてライセンスされています。