首页 存档 技术 查看内容

基于Python的开源预测工具的实践

2018-3-30 13:00 |来自: 互联网 400 0

摘要: 最近又发现一个很有意思的工具facebook开源的大规模预测框架Prophet,据说它生成的预测结果足以和专业数据分析师媲美。 从查阅的资料来看,Prophet开源时日不久,难怪网上很少有以实际应用来介绍的资料。就跟当初在 ...


最近又发现一个很有意思的工具facebook开源的大规模预测框架Prophet,据说它生成的预测结果足以和专业数据分析师媲美


从查阅的资料来看,Prophet开源时日不久,难怪网上很少有以实际应用来介绍的资料。就跟当初在baidu上查不到pandas资料那时候一样,米哥打算小试一把,用tushare网站过去的真实访问流量做一个未来预测,以简单的用法将facebook这个工具推荐给大家,希望对大家有一个启发。更牛逼的应用期待大家更加深入的研究和实践。

介绍

根据facebook公开的白皮书介绍,Prophet实质上是一个可加性回归模型(additive regression model),主要由四个核心构成:

  • 分段线性或者 logistic 增长曲线趋势,Prophet可以通过从数据选择变化点,自动探测变化趋势。

  • 按年为周期使用傅里叶级数(Fourier series)建模。

  • 按周为周期使用虚变量(dummy variables)建模。

  • 支持用户提供的重要节假日列表。


Prophet 针对的是商业预测任务,适用于具备以下特征的场景:

  • 针对每小时、每天或每星期的观察频次,有至少数月(理想情况的一年)的历史记录。

  • 多重显著的“人类层级”周期性:星期X以及年份。

  • 日期间隔不规则的重要节日,需要事先得知。

  • 观察缺失或是异常值在合理范围内。

  • 历史趋势变化,比如产品发布或者改写记录(logging changes)。

  • 符合非线性增长曲线的趋势,有天然上、下限或者饱和点。


对于以上官方的套话,米哥看的似懂非懂,反正经过一番折腾后,米哥用一句话总结一下它的优点吧:使用过程令人发指的简单!如果预测结果相对可靠,那简直就是逆天了。


安装

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)

有兴趣获得以上完整代码和演示数据文件的同学,请在本公众号私信回复“预测”两个字自动获得下载链接。


长按识别二维码

关注“公众号”

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部