You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NeuralProphet添加未来回归器预测室温遇值错误求助

解决NeuralProphet未来回归器取值未提供的错误

问题核心

触发的ValueError是因为生成未来预测数据时,未将提前准备好的回归器未来值传递给模型,NeuralProphet需要明确获取每个预测时间点对应的回归器取值。

修改方案

在调用make_future_dataframe时,通过future_regressors参数传入你的未来回归器数据框,同时需保证数据框的行数与模型设置的n_forecasts(预测步数)一致,列名与添加的回归器名称完全匹配。

修改后的完整代码

d = {'ds': new_ts, 'y': new_value, 'A': x}
df = pd.DataFrame(d)
df = df.drop_duplicates(subset=["ds"])

# 初始化模型
m = NeuralProphet(n_forecasts=forecast, n_lags=lags, daily_seasonality=True, weekly_seasonality=False, yearly_seasonality=True)
m = m.add_future_regressor(name='A')

# 准备未来回归器数据:确保行数等于n_forecasts,列名与回归器一致
d1 = {'A': my_series_predict.values}
future_regressors_df = pd.DataFrame(d1)
# 可选:验证数据长度匹配,避免后续报错
assert len(future_regressors_df) == forecast, "未来回归器数据长度需与n_forecasts设置一致"

# 训练模型
metrics = m.fit(df)

# 生成未来数据框时传入未来回归器
future = m.make_future_dataframe(df=df, future_regressors=future_regressors_df)
# 执行预测
forecast = m.predict(df=future, decompose=False)

额外注意事项

  • future_regressors_df的每一行对应一个未来时间点的回归器取值,顺序必须与模型自动生成的未来时间序列(ds列)顺序一致
  • 回归器列名需和add_future_regressor中指定的name严格一致,区分大小写

内容的提问来源于stack exchange,提问作者Laurent Louis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 04:45:43