Prophet:大规模时间序列预测工具
项目基础介绍和主要编程语言
Prophet 是由 Facebook 核心数据科学团队开发的开源时间序列预测工具。该项目主要使用 R 和 Python 编程语言实现,旨在为具有多季节性和非线性增长的时间序列数据提供高质量的预测。
项目核心功能
Prophet 的核心功能包括:
- 多季节性建模:支持年、周和日的季节性建模,适用于具有复杂季节性模式的时间序列数据。
- 非线性趋势拟合:能够处理非线性增长趋势,适用于各种复杂的时间序列数据。
- 节假日效应:自动识别和处理节假日对时间序列的影响,提高预测的准确性。
- 鲁棒性:对缺失数据、趋势变化和异常值具有较强的鲁棒性,能够在不完整或噪声数据中表现良好。
- 可调参数:提供多种参数供用户调整,以适应不同的预测需求和领域知识。
项目最近更新的功能
Prophet 最近的更新包括:
-
版本 1.1.5 (2023-10-10):
- 升级了 cmdstan 版本至 2.33.1,支持 Apple M2 芯片。
- 增加了对 macOS arm64 架构(M1、M2 芯片)的预构建轮子。
- 添加了
scaling
参数,允许在 Prophet() 实例化时进行 minmax 缩放,而不是默认的 absmax 缩放。 - 添加了
holidays_mode
参数,允许节假日回归器与季节性回归器具有不同的模式。 - 增加了
preprocess()
和calculate_initial_params()
方法,用于提供预处理步骤的透明度。 - 添加了
extra_output_columns
参数到cross_validation()
方法,允许用户指定额外的输出列。
-
版本 1.1.4 (2023-05-30):
- 完全依赖
holidays
包进行国家节假日处理。 - 升级了 cmdstan 版本至 2.31.0,支持 Apple M1 芯片。
- 修复了 Windows 安装过程中由于长路径导致的错误。
- 完全依赖
-
版本 1.1.2 (2023-01-20):
- 通过移除中间 DataFrame 创建,将
predict()
方法的速度提高了 10 倍。 - 加速了傅里叶级数的生成,使
train()
和predict()
管道的速度至少提高了 1.5 倍。 - 修复了 warm start 值读取的错误。
- 通过移除中间 DataFrame 创建,将
-
版本 1.1.1 (2022-09-08):
- 改进了 Python 中不确定性预测的运行时间(3-7 倍)。
- 修复了与 Python 包版本和 R 节假日对象相关的错误。
-
版本 1.1 (2022-06-25):
- 用
cmdstan
+cmdstanpy
替换了pystan2
依赖。 - 为 Python 包预打包了模型二进制文件,并上传到 PyPI。
- 改进了 Stan 模型。
- 用
Prophet 的这些更新进一步增强了其在大规模时间序列预测中的性能和灵活性,使其成为数据科学家和分析师的强大工具。