时间序列论文: 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之六:多元时间序列预测
NeuralProphet 通过滞后回归(Lagged Regressors)为时间序列预测目标加入其他协变量。
导入库:
import pandas as pd
import matplotlib.pyplot as plt
from neuralprophet import NeuralProphet, set_log_level
set_log_level("ERROR")
导入数据:
# data_location = "https://raw.githubusercontent.com/ourownstory/neuralprophet-data/main/datasets/"
data_location = 'datasets/'
df_ercot = pd.read_csv(data_location + "multivariate/load_ercot_regions.csv")
df_ercot_y = pd.read_csv(data_location + "energy/load_ercot.csv")
df_ercot['y'] = df_ercot_y['y']
print(df_ercot.head())
数据情况:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 154854 entries, 0 to 154853
Data columns (total 10 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ds 154854 non-null object
1 COAST 154854 non-null float64
2 EAST 154854 non-null float64
3 FAR_WEST 154854 non-null float64
4 NORTH 154854 non-null float64
5 NORTH_C 154854 non-null float64
6 SOUTHERN 154854 non-null float64
7 SOUTH_C 154854 non-null float64
8 WEST 154854 non-null float64
9 y 154854 non-null float64
dtypes: float64(9), object(1)
memory usage: 11.8+ MB
NeuralProphet通过add_lagged_regressor注册协变量
df = df_ercot
m = NeuralProphet(
n_forecasts=24,
n_lags=24,
learning_rate=0.01,
)
m = m.add_lagged_regressor(names=regions)
m.highlight_nth_step_ahead_of_each_forecast(24)
metrics = m.fit(df, freq="H")
预测
forecast = m.predict(df)
# fig = m.plot(forecast)
fig1 = m.plot(forecast[-365*24:])
fig2 = m.plot(forecast[-7*24:])
# comp = m.plot_components(forecast[-7*24:])
param = m.plot_parameters()
可视化
plt.show()