NeuralProphet之NeuralProphet部署

NeuralProphet之八:NeuralProphet部署

将模型存储到本地,并在需要的时候将其导入。
新版本的neuralprophet/utils.py文件下实现了 save和load函数用于模型保存和加载。

模型保存

from neuralprophet import save
save(m, "neuralprophet_model.np")



模型读取

from neuralprophet import load
m = load("neuralprophet_model.np")


模型预测

future = m.make_future_dataframe(df=df, periods=365)
forecast = m.predict(df=future)

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、付费专栏及课程。

余额充值