Prophet 是由 Facebook 开源一款基于 Python 和 R 语言的数据预测工具,相比现有预测工具更加人性化,并且难得地提供 Python 支持。对于高等院校开设数据科学与大数据技术专业而言,通常纠结于应该采用 R 语言还是 Python 作为数据分析专业核心课程的主要工具 —— 某些统计学,计量经济统计学专业,以及高等职业院校可能还依然在应用 Excel,SQL 或者商业化的 Matlab,SAS,SPSS,SATA。Prophet的发布很好的融合了数据科学,乃至未来的深度学习与新一代人工智能方向趋势的两种语言。另外,它生成的预测结果足以和专业数据分析师媲美。
Prophet 将预测共分四个流程:建模,预测评估,表面问题和人工检查。在建模阶段,当前可用的 Python 工具包寥寥无几。最广为人知的基于时间序列的 “ forecast” ,谷歌开发的 CausalImpact, 以及推特的 AnomalyDetection,均是基于 R 语言。很显然,Facebook 想要改变这一点。
组成部分
Prophet 是一个可加回归模型(Additive Regression Model),它有四个组成部分:
- 一个分段的线性或逻辑增长曲线趋势。Prophet 通过提取数据中的转变点,自动检测趋势变化。
- 一个按年的周期组件,使用傅里叶级数(Fourier series)建模而成。
- 一个按周的周期组件,使用虚拟变量(Dummy Variables)。
- 用户设置的重要节日表。
适用范围
- 针对每小时、每天或每星期的观察频次,有至少数月(理想情况的一年)的历史记录。
- 多重显著的“人类层级”周期性:星期 X 以及年份。
- 日期间隔不规则的重要节日(比如超级碗),需要事先得知。
- 观察缺失或是异常值在合理范围内。
- 历史趋势变化,比如产品发布或者改写记录(Logging Changes)。
- 符合非线性增长曲线的趋势,有天然上、下限或者饱和点。
这里是一份使用 Prophet 贝叶斯推理预测模型,对二氧化碳及出生率进行预测的实践教程,而国内网站做了中文翻译。