2021-06-27安装prophet包统计预测包的疑问解答

关于ubuntu系统python安装fbprohet软件包终结帖子

=分割线
为了做一个简单的预测模型需要安装fbprophet软件包,没有想到这玩意儿,花费了我近3天的时间.首先经历了Windows:安装上了,可以运行但是在最后模型拟合的时候
model.fit()终端会卡死重启(用的anaconda的spyder IDE).经过长达几个小时的浏览问题解决的办法,最终以失败告终.
第二天我想到了在linux系统上面可能会好安装一点.正好我的电脑里面也安装了一个国产系统deepin,也是基于linux的内核的.过程就不描述了,结果是失败的
最后我搜索博文,CSDN,知乎,简书,博客园等多个论坛.我选择了windows+virtualbox安装ubuntu虚拟机的方案.

在安装fbprophet包最大的问题就是会遇到pystan依赖安装不上的问题.
这个文章解决了如何安装pystan:
pystan的最新版是3.2.0(https://pystan.readthedocs.io/en/latest/),但是安装fbprophet如果安装了v3.2.0的话,我只能告诉你,你永远也安装不上fbprophet.多次查询了官方文档才发现在文档的注释里面藏着这样一句话(# pystan>=3.0 is currently not supported),所以按照fbprophet官方安装文档(https://facebook.github.io/prophet/docs/installation.html#python)老老实实安装2.19.1.1版本的pystan.

sudo pip install pystan==2.19.1.1

(等了很久大概1个小时吧,我还以为是电脑卡死了!听说pystan安装的时候需要C来编译一下,加上cpu一直占用很高,应该是在编译吧-小白思想)
等待之后成功了:
在这里插入图片描述

这个以来安装成功以后,就解决80%了哦.
继续

sudo pip install prophet

在这里插入图片描述
然后这个是结果:
在这里插入图片描述
(这里说明一下,大家尽量不要安装anaconda直接virtualbox安装ubuntu的20.4版本系统,然后直接尽心上面代码的操作)

python3
import pystan
import prophet

在这里插入图片描述
这里是在测试安装成功了没,报错plotly未安装,所以

sudo pip install plotly

在这里插入图片描述
安装plotly包(因为每个代码都用了sudo,所以是安装在root用户里面的,即使安装了anaconda也是安装在root用户里面的.)

python3
import pystan
import prophet

在这里插入图片描述
没有报错意味着成功!!加油兄弟们,这样子就可以行分析了,
经过测试,的确可行的:
在这里插入图片描述
这下子模型拟合就很快了.真舒服.

本文写于2021.6.27可能在2022.6.27这个文章已经不适用了.请读者注意时间的更新.

我发现之前fbprophet的包名字叫做fbprophet,现在是prophet,
以前pystan调用的时候是用import pystan 然而最新版的pystan调用是import stan

---------------------------------------=分割线=====================
python,R这类开源的软件真的是更新很快,!!
最后如果,后人遇到这个问题,实在无法解决,可以加我的qq:1359341226,本人是某高校的统计学研究生.可能在读期间,都会为大家解决安装prophet这个问题.
或者在下方留言(有可能不会回复!)

Prophet-NNAR是一种混合预测模型,它结合了Facebook的Prophet库和自回归神经网络(Neural Network AR, NNAR)技术。Prophet是一个强大的时间序列分析工具,特别适合有季节性和趋势变化的数据。而NNAR则通过深度学习的方式增强了模型对非线性和复杂性的适应能力。 在Python中,如果你想要实现这样一个模型,首先需要安装`fbprophet`和深度学习库如`Keras`或`PyTorch`。以下是一个简化版的示例,假设我们已经在环境中安装了这些库: ```python import pandas as pd from fbprophet import Prophet from keras.layers import Dense from sklearn.preprocessing import StandardScaler # 加载数据并准备Prophet部分 def prepare_prophet_data(df): df['ds'] = pd.to_datetime(df['ds']) df = df.set_index('ds') return df # 定义NNAR部分 def create_nn_ar_model(input_shape): model = Sequential() model.add(LSTM(units=50, input_shape=input_shape)) model.add(Dense(1)) # 输出一层,用于预测 model.compile(optimizer='adam', loss='mse') # 使用均方误差作为损失函数 return model # 结合两个模型 def prophet_nnar_forecast(data, prophet_steps, nnar_steps): # 准备Prophet部分 data_prophet = prepare_prophet_data(data) # 创建Prophet模型 m = Prophet() m.fit(data_prophet) # 进行Prophet预测 future = m.make_future_dataframe(periods=prophet_steps) forecast_prophet = m.predict(future) # 对原始数据进行标准化 scaler = StandardScaler() data_scaled = scaler.fit_transform(data.values) # 使用NNAR预测剩余部分 input_shape = (data_scaled.shape[0], 1) nnar_model = create_nn_ar_model(input_shape) forecast_nnar = nnar_model.predict(data_scaled[-nnar_steps:]) # 合并Prophet和NNAR预测结果 forecast = np.concatenate((forecast_prophet[['yhat']].tail(nnar_steps), forecast_nnar), axis=0) return forecast # 使用示例 data = ... # 假设你的时间序列数据在这里 forecast = prophet_nnar_forecast(data, prophet_steps=365, nnar_steps=90) # 设置Prophet和NNAR预测的时间步长
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值