在本项目中,只需几行代码即可创建预测。首先,指定数据集信息,将时间列参数设置为 'Timestamp',将值列参数设置为 'Weighted_Price'。在频率(freq)中,将值设置为 'D',表示从起始日期开始的每日数据。之后,使用 GreyKite中的类Forecaster创建一个预测器。run_forecast_config()输出的将是一个字典,其中包含了未来预测值、原始时间序列和历史预测性能。
(1)使用 GreyKite 创建时间序列预测,首先创建了一个元数据参数对象(metadata),用于指定数据集的信息,包括时间列名称("Timestamp")、值列名称("Weighted_Price")以及时间序列的频率("W",表示每周)。然后,创建了一个时间序列预测器对象(forecaster)。具体实现代码如下所示。
# 创建元数据参数对象,用于指定数据集信息
metadata = MetadataParam(
time_col="Timestamp", # 指定时间列的名称
value_col="Weighted_Price", # 指定值列的名称
freq="W" # 指定时间序列的频率,这里设置为每周("W")
)
# 创建一个时间序列预测器对象
forecaster = Forecaster()
# 运行预测配置
result = forecaster.run_forecast_config(
df=df_price_include, # 使用包含数据的DataFrame
config=ForecastConfig(
model_template=ModelTemplateEnum.SILVERKITE.name, # 使用 Silverkite 模型模板
forecast_horizon=30, # 预测未来的时间步数,这里设置为30步
coverage=0.95, # 设置预测的置信水平为95%
metadata_param=metadata # 使用之前创建的元数据参数
)
)
在上述代码中,使用 run_forecast_config 方法运行预测配置,其中包括以下配置项:
- model_template:使用 Silverkite 模型模板来进行预测。
- forecast_horizon:设置预测未来的时间步数,这里设置为30步。
- coverage:设置预测的置信水平为95%。
- metadata_param:使用之前创建的元数据参数,指定数据集的信息。
最终,result 包含了预测结果,包括未来预测值、原始时间序列数据以及历史预测性能。这个代码片段演示了如何使用 GreyKite 包创建时间序列预测模型并运行预测配置。执行后会输出:
Fitting 3 folds for each of 1 candidates, totalling 3 fits
(2)绘制时间序列预测结果,具体实现代码如下所示。
fig = result.timeseries.plot()
fig.show()
执行后会绘制时间序列预测结果图,如图11-10所示,
图11-10 时间序列预测结果的图