Fbprophet安装经验总结
Facebook在2018年开源了一个时间序列预测的算法,叫做fbprophet(https://github.com/facebook/prophet)。从官网的介绍来看,Facebook 所提供的 prophet 算法不仅可以处理时间序列存在一些异常值的情况,也可以处理部分缺失值的情形,还能够几乎全自动地预测时间序列未来的走势,该算法的预测不像普通算法那样只有预测值,还包括预测的上界和下界。
从论文上的描述来看,这个 prophet 算法是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了 pyStan 这个开源工具,因此能够在较快的时间内得到需要预测的结果。除此之外,为了方便统计学家,机器学习从业者等人群的使用,prophet 同时提供了 R 语言和 Python 语言的接口。从整体的介绍来看,如果是一般的商业分析或者数据分析的需求,都可以尝试使用这个开源算法来预测未来时间序列的走势。
你以为我接下来要介绍这个算法是用什么原理,或者有什么好的效果了吗?No!我接下来要说的,是我在安装fbprophet这个模块的时候的血与泪。
Windows安装
首先附上我从网上超多的教程中看到的,大家都成功了的方法。
1) 安装anaconda
看好python版本
2) 在anaconda prompt里,创建一个虚拟环境:
conda create 虚拟环境名 python=版本号
3) 激活虚拟环境:
conda activate 虚拟环境名
4) 安装C++编译器:
conda install libpython m2w64-toolchain -c msys2
5) 检查你的虚拟环境路径下\Lib\distutils中是否有distutils.cfg文件,如果没有就手动创建一个
6) 安装各种依赖包:
conda install numpy cython -c conda-forge
conda install matplotlib scipy pandas -c conda-forge
7) 安装pystan
conda install pystan -c conda-forge
8) 安装fbprophet
conda install fbprophet -c conda-forge
看上去只要按照步骤走,很简单,但是赶上疫情在家办公,家里的网速极差(手机4G开热点也一点不给力),加上下载源的问题,面对着平日里不起眼的几兆,几十兆的包,死活装不上,最开始尝试不使用此命令,比如自己在电脑上安装好c++编译器等,也是不能克服。
另外,我还尝试了使用源码安装的方法,我按照它的要求装好了所有他写的依赖,版本也满足,但是最后安装的时候始终找不到lunarcalendar模块,可是我确信我安装了符合他文档里版本要求的lunarcalendar模块。
所以最终我也没能成功的在windows上装好。只能寄希望于回实验室以后再试试。
Ubuntu安装
之所以在windows上尝试了好几天也没放弃,是因为fbprophet的文档写要求4G的内存,但是虚拟机不满足。今天经人提醒,知道了wsl这个东西,遂尝试,发现一定程度上还真挺好用。安装步骤如下:
1) Ubuntu自带python3,安装pip3:
sudo apt install python3-pip
2) 安装pystan
pip3 install pystan
3) 更新pip3
python3 -m pip install -U pip
4) 安装fbprophet:
pip3 install fbprophet
如果执行第四步的时候报错
那就卸载fbprophet(pip3 uninstall fbprophet),重复第三步,再试。
在测试是否安装成功时,如果像下图这样
不要急,可以先import pandas,就没有问题了。
Wsl上图形界面的使用
提到了用wsl执行python,介绍一下wsl的一个问题。
默认情况下,Win10的linux子系统(WSL)是只能使用命令行程序的。所有图形界面的程序都无法执行。比如python的pyplot画图程序,在wsl上运行不会有任何显示。
当然我们可以把数据输出到文件,在在windows上处理,但是过于麻烦。而通过为Win10安装XWindows协议的终端应用,可以让Win10成为一台XWindow终端,从而接受Linux的XWindow显示输出。这样的终端应用有很多,Xming和VcXsrv是其中著名的两个。
具体教程就不详细介绍,可以参考(https://blog.csdn.net/weixin_34408624/article/details/94200977)。
安装就介绍到这里,后续使用有心得再更新。