时间序列论文: NeuralProphet: Explainable Forecasting at Scale
NeuralProphet之一:安装与使用
NeuralProphet之二:季节性(Seasonality)
NeuralProphet之三:回归(Regressors)
NeuralProphet之四:事件(Events)
NeuralProphet之五:多时序预测模型
NeuralProphet之六:多元时间序列预测
NeuralProphet之七:NeuralProphet + Optuna
NeuralProphet之八:NeuralProphet部署
NeuralProphet官方示例一:建筑物用电量预测(Building load forecasting)
NeuralProphet官方示例二:日照辐射强度预测(Forecasting hourly solar irradiance)

NeuralProphet之三:回归(Regressors)

1 自回归(Auto-Regression)

对NeuralProphet对象的n_lags参数设置一个适当的值,就可以在NeuralProphet中启用AR-Net。

例如,将5个滞后期输入AR-Net,并接收3个步骤作为预测。

m = NeuralProphet(
    n_forecasts=3,
    n_lags=5,
    yearly_seasonality=False,
    weekly_seasonality=False,
    daily_seasonality=False,
)
  • num_hidden_layers参数:增加AR-Net的复杂度
  • ar_sparsity参数:为AR-Net加入正则约束
  • highlight_nth_step_ahead_of_each_forecast参数:突出特定的预测步骤,用法
m.highlight_nth_step_ahead_of_each_forecast(step_number=m.n_forecasts)

2 滞后回归项(Lagged Regressors)

只有在启用AR-Net的情况下,才会支持Lagged Regressor

NeuralProphet通过调用add_lagged_regressor函数并给出必要的设置,将Lagged Regressor用于NeuralProphet对象中。
假如有一个名为A的滞后回归项,通过add_lagged_regressor注册它到NeuralProphet

m = m.add_lagged_regressor(names='A')

3 未来回归(Future Regressors)

未来回归量是具有已知未来值的外部变量,我们还需要提供回归量的未来值。
生成数据

df['A'] = df['y'].rolling(7, min_periods=1).mean()
df['B'] = df['y'].rolling(30, min_periods=1).mean()
future_regressors_df = pd.DataFrame(data={'A': df['A'][:50], 'B': df['B'][:50]})

生成的future_regressors_df 是一个只有回归项未来值列的dataframe,如下
在这里插入图片描述
NeuralProphet通过调用add_future_regressor函数将回归器添加到NeuralProphet对象中。

m = m.add_future_regressor(name='A')
m = m.add_future_regressor(name='B')

当进行预测时,必须通过提供回归器的未来值来创建未来dataframe 。调用 make_future_dataframe 函数,提供之前创建的future_regressors_df 作为参数。

future = m.make_future_dataframe(df=df, regressors_df=future_regressors_df, periods=3)
forecast = m.predict(df=future)

加乘模式:

m = m.add_future_regressor(name='A', mode="multiplicative")
m = m.add_future_regressor(name='B')

正则化

m = m.add_future_regressor(name='A', regularization=0.05)
m = m.add_future_regressor(name='B', regularization=0.02)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐