Windows下fbprophet的安装

fbprophet时Facebook开源的时序预测包
从昨天晚上到今天中午花了5个小时时间,终于装好了fbprophet,在此记录一下踩过的坑。

坑1:\VC\**SDK不存在

原因:虽然安装了VS2015,但是C++组件没有安装完全
解决:打开VS2015,文件-新建-项目,选择visual C++,安装C++组件
Windows下fbprophet的安装_第1张图片

坑2.1:error: command {VC路径} \VC\BIN\cl.exe’ failed with exit status 2

坑2.2:TypeError: ‘>=’ not supported between instances of ‘NoneType’ and ‘str’

原因:报这个错误不是VC的问题,是pystan这个包没有安装正确
解决:重新安装pystan并import一下验证是否安装正确,可用以下代码验证

import pystan
model_code = 'parameters {real y;} model {y ~ normal(0,1);}'
model = pystan.StanModel(model_code=model_code)  # this will take a minute
y = model.sampling(n_jobs=1).extract()['y']
y.mean()  # should be close to 0

坑3:Process finished with exit code -1073740791 (0xC0000409)

原因:显存不足?
解决:把matplotlib卸载之后重新安装

坑4:运行import pystan,报DDL无法找到模块

原因:蜜汁错误
解决:重启pycharm就好了???

之前在网上找了很多不同的教程,均会踩到各种坑,但跳过坑之后终于调试成功,最后附上一篇最合理、坑最少的教程供各位参考
原文地址:点击此处

大概流程:

  1. 创建conda虚拟环境(最好不要使用anaconda的base环境)
  2. 安装MingW-w64编译器类型: conda install libpython m2w64-toolchain -c msys2
  3. 在{你的环境路径}\ Lib \ distutils中检查是否有distutils.cfg文件,如果没有就创建一个
  4. conda install numpy cython -c conda-forge
  5. conda install matplotlib scipy pandas -c conda-forge,此处可能会踩坑3
  6. pip install pystan或者conda install pystan -c conda-forge
  7. pip install fbprophet 若依然报错则从https://github.com/facebook/prophet下载源码,然后进入prophet-master\python\目录下使用 pip install -e .(不要忘记{.}) 或者python setup.py install

至此安装成功,附上测试代码:

import pandas as pd
import numpy as np
from fbprophet import Prophet
df = pd.read_csv(open('D:/anaconda3/prophet/examples/example_wp_log_peyton_manning.csv',encoding='utf8'))#官方提供的测试数据
df['y'] = np.log(df['y'])
playoffs = pd.DataFrame({
     
  'holiday': 'playoff',
  'ds': pd.to_datetime(['2008-01-13', '2009-01-03', '2010-01-16',
                        '2010-01-24', '2010-02-07', '2011-01-08',
                        '2013-01-12', '2014-01-12', '2014-01-19',
                        '2014-02-02', '2015-01-11', '2016-01-17',
                        '2016-01-24', '2016-02-07']),
  'lower_window': 0,
  'upper_window': 1,
})
superbowls = pd.DataFrame({
     
  'holiday': 'superbowl',
  'ds': pd.to_datetime(['2010-02-07', '2014-02-02', '2016-02-07']),
  'lower_window': 0,
  'upper_window': 1,
})
holidays = pd.concat((playoffs, superbowls))#季后赛和超级碗比赛特别日期
m = Prophet(holidays=holidays)#指定节假日参数,其它参数以默认值进行训练
m.fit(df)#对过去数据进行训练
future = m.make_future_dataframe(freq='D',periods=365)#建立数据预测框架,数据粒度为天,预测步长为一年
forecast =m.predict(future)
m.plot(forecast).show()#绘制预测效果图
m.plot_components(forecast).show()#绘制成分趋势图

官方文档https://facebook.github.io/prophet/docs/installation.html#python

你可能感兴趣的:(机器学习and数据挖掘)