Prophet:Facebook 简单高效的时间序列模型
4 代码实践
我们使用沃尔玛股票的历史数据来进行分析。import pandas as pdfrom fbprophet import Prophetimport matplotlib.pyplot as plt
wmt = pd.read_csv('data/WMT.csv', usecols=[0, 5])
# 看一下数据wmt.head().append(wmt.tail())(左右滑动查看全部内容)
# 需要修改为制定列名wmt.columns = ['ds','y']wmt.head()
# 画图wmt.set_index(['ds']).plot(figsize=(18,7))(左右滑动查看全部内容)
# 初始化模型m = Prophet()
# 拟合数据m.fit(wmt)
# 准备预测值,我们要预测未来一年future = m.make_future_dataframe(periods=365)future.tail()(左右滑动查看全部内容)
# 预测数据forecast = m.predict(future)# 画出预测图:m.plot(forecast)
# 画出时间序列的分量m.plot_components(forecast)
这里做的比较简单,还有很多参数没有加。
给出调参经验:
Capacities:用户可以通过调整该参数,来适配经验所得的容纳量;
Change points:直接指定变点;
Holidays and seasonality:调整节假日与事件及其影响;
Smoothing parameters:通过调整
来控制模型增长率的全局或者局部平滑;季节性和假日的平滑参数
可以来估计未来的季节性变化。
5 总结
简单做个总结:Prophet 是 Facebook 开源的自动化预测的时间序列模型,其非常简单且速度非常快。Prophet 基于线性可加模型,分量包括趋势、季节性、节假日效应及误差。其非常适用于具有强烈季节效应的时间序列任务。Prophet 简单之处还表现于对缺失值和异常点的健壮性,即使是不懂时间序列建模的人员也可以很快上手。
Prophet 有以下优势:
速度快且性能好:Prophet 已经应用于 Facebook 的许多场景并提供可靠的预测。在大多数情况下,它的效果都比其他方法要好;全自动:Prophet 对于异常值、丢失的数据具有健壮性,可以对杂乱的数据进行合理的预测,无需人工介入;灵活性高:Prophet 程序为用户提供了许多调整接口,可以通过添加领域知识来改进预测;简单方便:可以使用 Python 或者 R,非常方便。
但 Prophet 也有以下局限:
无法人为加特征;模型过于简单,常常处于欠拟合状态;不适合长期预测。
6 参考资料
[1] Taylor S J, Letham B. Forecasting at scale[J]. The American Statistician, 2018, 72(1): 37-45.[2] Github: Prophet[3] Intro to Facebook Prophet
关于我“门”
将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
将门创新服务专注于使创新的技术落地于真正的应用场景,激活和实现全新的商业价值,服务于行业领先企业和技术创新型创业公司。
将门技术社群专注于帮助技术创新型的创业公司提供来自产、学、研、创领域的核心技术专家的技术分享和学习内容,使创新成为持续的核心竞争力。
将门创投基金专注于投资通过技术创新激活商业场景,实现商业价值的初创企业,关注技术领域包括机器智能、物联网、自然人机交互、企业计算。在近四年的时间里,将门创投基金已经投资了包括量化派、码隆科技、禾赛科技、宽拓科技、杉数科技、迪英加科技等数十家具有高成长潜力的技术型创业公司。
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 2024 智能家居出海论坛
-
精彩回顾立即查看>> 【在线会议】多物理场仿真助跑新能源汽车
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论