时序算法研究系列之Prophet安装(准备篇)

前言

新开一个关于时序数据预测算法的系列博客。计划整理目前的时序数列的预测方法、原理、应用、心得等。

其中Prophet因为在安装时候踩了很多雷,所以专门开一个准备篇写安装过程,下一篇讲述具体应用。

目录

前言

Prophet 简介

方法一:

方法二:

方法三:

方法四:

方法五:


近期因工作需要做时序数据用到了Facebook 的 Prophet,感觉是一个非常不错的时间序列预测工具。个人理解fbprophet类似于STL分解思路,但是Prophet 在控制程度上操作跟灵活低耦合,模块化的操作在可解释性上比传统时序模型也更有优势。

Prophet 简介

Facebook 2017年开源了一个时间序列预测的算法叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站:

Github:https://github.com/facebook/prophet

官方网址:https://facebook.github.io/prophet/

论文名字与网址:《Forecasting at scale》

从官网的介绍来看,Facebook 所提供的 prophet 算法不仅可以处理时间序列存在一些异常值的情况,也可以处理部分缺失值的情形,还能够几乎全自动地预测时间序列未来的走势。

从论文上的描述来看,这个 prophet 算法是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了 pyStan 这个开源工具,因此能够在较快的时间内得到需要预测的结果。

除此之外,为了方便统计学家,机器学习从业者等人群的使用,prophet 同时提供了 R 语言和 Python 语言的接口。从整体的介绍来看,如果是一般的商业分析或者数据分析的需求,都可以尝试使用这个开源算法来预测未来时间序列的走势。

有木有很心动?  是不是觉得相见恨晚?    有木有觉得自己马上就要变成数据分析师了? 

然后就可以愉快的按照官网的推荐安装了

                    Too young too simple ~

fbprophet的安装过程踩到很多雷,通过查阅资料才最终排雷成功。

为节省大家时间,将踩到的坑以及个人成功的方法进行整理与大家分享~

先说结论:注意版本! 注意版本! 注意版本!建议使用python3.5版本 或者用anconda建立虚环境。

通过Anconda本人测试了python3.5python3.6python3.7 目前py35环境装起来最方便。

方法一:

第一步:

pip install fbprophet

 

 

如果直接成功,恭喜欧皇体质,可以直接进入到下一篇应用篇了,后续不用再看。 

但是大概率会报错,错到哪里去也不知道,百度之,发现安装这个 fbprophet一定要先安装pystan。

好的我们进入下一步。

第二步:

pip install pystan

 这一步会有两种可能,一种可能直接成功,可以继续进行第三步。奈何本人非酋体质,系统提示安装pystan一定要先安装Microsoft visual 14.00 C++,什么鬼!然后上官网直接下载Microsoft visual 14.00 C++,结果公司网关屏蔽这个链接QAQ~~~

安装后直接 pip install pystan,期间经历了下载tar.gz的包,放在了指定目录下(如D:\)然后使用python setup.py install 

然后死得很难看QAQ ,不知道是不是下载了tar.gz的包对于 pip install pystan有没有影响了,总之成功了~

ps:在另一台电脑上直接pip install pystan成功了,这一步看来问题不大。

这里还发生了一个小插曲,在Win10安装时候突然conda源链接损坏了,报错

CondaHTTPError: HTTP 404 NOT FOUND for url <https://pypi.tuna.tsinghua.edu.cn/simple/noarch/repodata.json>
Elapsed: 00:00.032390

The remote server could not find the noarch directory for the
requested channel with url: https://pypi.tuna.tsinghua.edu.cn/simple

As of conda 4.3, a valid channel must contain a `noarch/repodata.json` and
associated `noarch/repodata.json.bz2` file, even if `noarch/repodata.json` is
empty. please request that the channel administrator create
`noarch/repodata.json` and associated `noarch/repodata.json.bz2` files.
$ mkdir noarch
$ echo '{}' > noarch/repodata.json
$ bzip2 -k noarch/repodata.json

You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state.
Further configuration help can be found at <https://conda.io/docs/config.html>.

可能是之前添加的下载镜像源导致的,问题不大。直接

  • 删除之前的镜像通道(实际上只用这个就行了)
  • 重新添加默认的镜像通道
conda config --remove-key channels
conda config --append channels conda-forge --append channels bioconda --append channels defaults

 import pystan 无误后继续下一步。

第三步:

这时候可以继续尝试下  pip install fbprophet ,如果安装成功,可以直接进入下一篇应用,没有成功请继续。

方法二:

如果电脑装有Anaconda可以换另一种方法:

conda install -c conda-forge fbprophet

 这种是博主遇到的最接近成功的方法了,因为屏幕显示真的安装成功了!!!!

然鹅,在import fbprophet时候,还是会遇到报错信息,卒~~~~

此时可以视具体的报错原因,进行修改。

方法三:

期间还尝试了git clone 源码安装包的方法

(py35) [chaijian@LY1F-R010608 ~]$ git clone https://github.com/facebook/prophet
正克隆到 'prophet'...
remote: Enumerating objects: 43, done.
remote: Counting objects: 100% (43/43), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 3373 (delta 23), reused 25 (delta 11), pack-reused 3330
接收对象中: 100% (3373/3373), 37.67 MiB | 546.00 KiB/s, 完成.
处理 delta 中: 100% (2074/2074), 完成.
(py35) [chaijian@LY1F-R010608 ~]$ ls
anaconda3  Callreason  cr_text  DATA  Git_lab  Order  pc  prophet  TrafficPredict-code  通话时长分析交接材料P2
(py35) [chaijian@LY1F-R010608 ~]$ cd prophet/
(py35) [chaijian@LY1F-R010608 prophet]$ ;s
-bash: 未预期的符号 `;' 附近有语法错误
(py35) [chaijian@LY1F-R010608 prophet]$ ls
CODE_OF_CONDUCT.md  docker-compose.yml  Dockerfile  docs  examples  LICENSE  Makefile  notebooks  python  R  README.md
(py35) [chaijian@LY1F-R010608 prophet]$ cd python/
(py35) [chaijian@LY1F-R010608 python]$ ls
fbprophet  LICENSE  MANIFEST.in  README.md  requirements.txt  scripts  setup.py  stan
(py35) [chaijian@LY1F-R010608 python]$ python setup.py install
running install
running bdist_egg
running egg_info
creating fbprophet.egg-info
writing fbprophet.egg-info/PKG-INFO
writing dependency_links to fbprophet.egg-info/dependency_links.txt
writing requirements to fbprophet.egg-info/requires.txt
writing top-level names to fbprophet.egg-info/top_level.txt
writing manifest file 'fbprophet.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'fbprophet/stan_model'
writing manifest file 'fbprophet.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/fbprophet
creating build/lib/fbprophet/stan_model
INFO:pystan:COMPILING THE C++ CODE FOR MODEL anon_model_888a84912910fa0a45b9d614b75bb8a8 NOW.
error: command 'gcc' failed with exit status 1

 显示缺少gcc编译环境,这时候可以(1)有root权限的话直接安装gcc环境就可以  经测试,sudo yum install python-devel 、sudo yum install libevent-devel、yum install python-tools也可以解决  (2)没有root权限的话,请告别这种方法。(gcc环境建议还是不要轻易更改,尤其是编译模式下极容易搞崩服务器)因为本人没有root权限,放弃了此种方法。

方法四:

刚才已经说过,其实主要报错还是因为python本身的版本问题报错,通过Anconda建立python3.5环境,然后conda install -c conda-forge fbprophet  一般没有问题。

方法五:

这个方法经本人测试无误,Win10、linux系统有anconda环境的都可以用。所谓的安装的包也就是一段段的python代码,在Anconda科学环境中,所以可以直接将安装好的fbprophet粘贴到正确的python环境包路径中就可以了,import时候可以看在新环境下缺少什么辅助包直接补充就行了。

 如图为作者将服务器中的fbprophet包直接拷贝到Win10系统中,经测试有效。

有需要的直接百度云下载就可以了,下载后解压到python的包的路径下“site-packages”这个文件夹下面。

需要的话直接百度云下载就可以了。链接:https://pan.baidu.com/s/1CyWIIH4NW1NTU4dAiFyqfg 密码:oucm

 

 

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值