哭了 整整两天终于安好了!!!
附上最后的成果图
facebook的这个时间预测模型 坑太多了
下面记录一下这两天踩过的坑:
一.首先fbprophet需要vs2015的编译器环境,我真的是安装了3个多g的visual studio2015 下面附上官网地址:
1.官网
https://visualstudio.microsoft.com/vs/older-downloads/
2.vs2015 社区版镜像地址
http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso
安装步骤中的编程语言只选vc++就行了。
二、安装依赖
我试了pip安装,但是一直都有错误,因为我刚开始安装的是vs2019版,不知道是不是这个原因,百度了一晚上也没有解决
第二天,我准备放弃window的环境改用linux,但是我的虚拟机又出了问题,一直打不开,重新安装了有没法关机。。。。无奈只有继续在windows环境下配置。(我就要死磕到底)
需要安装的依赖包括:pandas、numpy 、cython 、matplotlib 、scipy这些包通过pip install xxx都成功安装上,接下来趁热打铁安装pystan,显示安装成功,但是测试时出现如下错误:
百度了很多种办法都不行,放弃pip 改用conda安装,记住conda命令不在cmd中执行,而是在anaconda prompt中执行。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
接下来进入正题
1.首先创建一个新的conda虚拟环境
conda create -n py37 python=3.7
这里的py37是创建的环境名,自己命名。
2.激活环境
conda activate fy37
然后关闭环境:
conda deactivate
3.安装c++编译器mingw-w64编译器工具
conda install libpython m2w64-toolchain -c msys2
4.安装依赖库
conda install numpy cython -c conda-forge
conda install matplotlib scipy pandas -c conda-forge
但是安装时一直报错CondaHTTPErroer:HTTP 000
原因是使用的国外的镜像网络不稳定,换成国内的就行:(前提是配置了anaconda的环境变量)
添加这两行命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
或者在c盘users下找到当前用户下的.condarc文件
将如下命令写入该文件,然后保存(如果没有该文件,自己创建一个,写入以下命令)
channels:
- https://mirrors.tnua.tsinghua.edu.cn/anaconda/pkgs/free/
show_channel_urls: true
但时pip使用该镜像可以成功安装,我用conda不行,所以我换成了中科大的镜像:
但是安装过程又出现了新的问题:
UnsatisfiableError: The following specifications were found to be incompatible
又百度一通:就是安装的依赖和python版本冲突
我又把所有的依赖卸载了 conda clean -t
重新安装使用上面的conda安装依赖 成功!
5.安装pystan
conda install pystan -c conda-forge
很顺利安装成功 激动ing
6.安装fbprophet
我先用的conda安装 出出出出出 。。。错了 吓人
我又换成了pip 安装:pip install fbprophet
(注意还是在Anaconda Prompt在执行)
耶!成功!
其实中途还有许多问题,我忘记记录了,不过功夫不负有心人,只有静下来按着错误提示,一步一步解决总能成功的!希望这次记录对大家有点用。
最后为了测试fbprophet确实安装成功了,简单的写了一段测试代码:
import pandas as pd
from fbprophet import Prophet
#读入数据
df=pd.read_csv('D://hxf/yx/prophet-master/examples/example_wp_log_peyton_manning.csv')
df.head()
#拟合模型
m=Prophet()
m.fit(df)
#构建待测日期数据框,periods=365代表除历史数据的日期外再往后推365天
future =m.make_future_dataframe(periods=365)
future.tail()
#预测数据集
forecast =m.predict(future)
forecast[['ds','yhat','yhat_lower','yhat_upper']].tail()
#展示预测结果
m.plot(forecast)
m.plot_components(forecast)