2023 年更新:我們在這篇文章中討論了 Prophet 的未來計畫:facebook/prophet 2023 年及以後
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
後,請按照以下說明使用cmdstanr
而不是rstan
作為後端:
# 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++。如果您使用的是虛擬機,請注意您將需要至少 4GB 記憶體來安裝 Prophet,並且至少需要 2GB 記憶體才能使用 Prophet。
在 Windows 中使用cmdstanpy
需要與 Unix 相容的 C 編譯器,例如 mingw-gcc。如果先安裝了 cmdstanpy,則可以透過cmdstanpy.install_cxx_toolchain
指令進行安裝。
y
的日期的預測,交叉驗證指標中的零除法錯誤。NDArray[np.float_]
更改為NDArray[np.float64]
以與 numpy 2.0 相容holidays
數據。Prophet()
實例化加入了參數scaling
。允許在y
上進行minmax
縮放而不是absmax
縮放(除以最大值)。預設情況下, scaling='absmax'
,保留先前版本的行為。holidays_mode
加入Prophet()
實例化。允許假日回歸量具有與季節性回歸量不同的模式。如果未指定, holidays_mode
採用與seasonality_mode
相同的值,保留先前版本的行為。Prophet
物件中加入了兩個方法: preprocess()
和calculate_initial_params()
。這些不需要調用,也不會改變模型擬合過程。它們的目的是澄清在資料傳遞到 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 許可。