最近又发现一个很有意思的工具facebook开源的大规模预测框架Prophet,据说它生成的预测结果足以和专业数据分析师媲美。 从查阅的资料来看,Prophet开源时日不久,难怪网上很少有以实际应用来介绍的资料。就跟当初在baidu上查不到pandas资料那时候一样,米哥打算小试一把,用tushare网站过去的真实访问流量做一个未来预测,以简单的用法将facebook这个工具推荐给大家,希望对大家有一个启发。更牛逼的应用期待大家更加深入的研究和实践。 介绍 根据facebook公开的白皮书介绍,Prophet实质上是一个可加性回归模型(additive regression model),主要由四个核心构成:
Prophet 针对的是商业预测任务,适用于具备以下特征的场景:
对于以上官方的套话,米哥看的似懂非懂,反正经过一番折腾后,米哥用一句话总结一下它的优点吧:使用过程令人发指的简单!如果预测结果相对可靠,那简直就是逆天了。 安装 Prophet的安装很简单,一行代码搞定。 pip install fbprophet 但是!Prophet严重依赖pystan包,在安装之前必须先安装好这个包,虽然同样也是一行pip来安装,但是在windows上安装pystan prophet就是一种心灵折磨,各种坑爹的坑。为了让大家少躺坑,如果您打算在windows上尝试的话,米哥这里提示几点: 1、最好选用winows7系统 2、使用Python3.5 (用Anaconda发行版) 3、确认已安装Visual C Build Tools 2015 4、Prophet最好通过clone源代码来setup install 数据准备 本实验通过tushare在cnzz上的pv流量统计数据来做一个实例,下载了从2016年1月1日至今的流量数据,原始数据格式如下: 以此来预测未来一年tushare的访问流量,数据经过整理存储在一个csv文件里并通过pandas读取数据。 对pv值进行对数处理,然后查看过去一年的趋势情况。 有一点值得注意的是,Prophet对输入数据的格式有要求,时间列需命名ds,数值命名为y。 预测实现 首先需要初始Prophet对象,并将pandas的DataFrame数据传入给prophet,数据装载过程很简单也相对较快。 然后我们告诉预测模型我们需要预测未来多久的结果,这里设定一年(即365天)并执行预测命令。 预测的结果依然是一个DataFrame格式的数据,结果值列名为yhat,同时给出了最大和最小值。 通过绘图功能,我们来看一下预测效果。 通过weekly函数我们看一下,周末两天访问量最少。 m.plot_weekly(forecast) m.plot_trend(forecast) 有兴趣获得以上完整代码和演示数据文件的同学,请在本公众号私信回复“预测”两个字自动获得下载链接。 长按识别二维码 关注“公众号” |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|