最近用到了prophet以及neturalprophet。
官方给出了issues以及自述文件。
首先从prophet的版本说起吧,也为我无数次尝试安装fbprophet掬一把泪。
官方自述文件提及安装命令为
python -m pip install prophet
prophet从v0.6版本开始,不再支持python2;从v1.1开始,支持的最低python版本为3.7。
所以这里一定要先注意自己的python版本。说起来我研一的时候,老师的作业python2,python3还都可以使用来着。就是还差蛮多的。如果是初学者还是多注意一下比较好。
重点来了!prophet在pypi上的包v1.0开始名称是prophet;在此之前是fbprophet。
但是我通过国内搜索引擎搜到的教程还是安装pystan以及fbprophet。
虽然我安装过程中各种出问题,无法build wheel。用的公司电脑,内网限制也好多。整个人就很折磨。其实完全可以跳出这个问题的,主要还是想偷懒,当时不想看源码orz。
安装prophet成功之后,就到了开箱即用的环节啦。按照prophet所需要的df格式,最起码一列ds(时间类型),一列y(数值类型)。简单split一下你的数据集就可以fit出漂亮的波形图了。
国内搜索引擎给出了一篇更新迭代模型的文章,但实际上可以在官方文档中找到。
使用的语句是
modelnew=Prophet().fit(df,init=stan_init(model))
但是这个更新迭代的方法,会由于版本出现一个bug,我根据提示去改源码改的稀碎。偷懒不了了QAQ。
报错是这样的
File "D:\Program Files\Anaconda3\lib\site-packages\prophet\models.py", line 154, in prepare_data
'y': data['y'].tolist(),
AttributeError: 'list' object has no attribute 'tolist'
issues里面也有人和我遇到了一样的问题 来源于issues2229,riskysignal
题主发现prophet==1.0.1可,但1.1哒咩。
现在问题来到了如何让一个模型可以适配多个时序了。嘿嘿,prophet不可以但是neturalprophet可以呀。
踩完一遍再继续更新。
我的anaconda的base环境,python版本为3.7.0。进行尝试后,发现使用以下链接可以解决我的问题。粘贴在这里。
我出错的文件在neturalprophet文件夹下的一个py文件。
地址为 D:\Program Files\Anaconda3\Lib\site-packages\neuralprophet\configure.py.
改变后的代码行是第10行的引用。具体原因在连接中可以查看。
#from typing import OrderedDict as OrderedDictType
from typing_extensions import OrderedDict as OrderedDictType