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 许可。