使用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
相关产品推荐
相关产品推荐

