ML.FORECAST
函数
ML.FORECAST
函数根据经过训练的时间序列模型预测时间序列。
ML.FORECAST
会返回以下列:
time_series_id
:时间序列的标识符。仅在同时预测多个时间序列时显示。列名称和类型继承自模型创建查询中指定的TIME_SERIES_ID_COL
选项。forecast_timestamp
(TIMESTAMP
)forecast_value
(FLOAT64
)standard_error
(FLOAT64
)confidence_level
(FLOAT64
)prediction_interval_lower_bound
(FLOAT64
)prediction_interval_upper_bound
(FLOAT64
)confidence_interval_lower_bound
(FLOAT64
)(即将弃用)confidence_interval_upper_bound
(FLOAT64
)(即将弃用)
ML.FORECAST
语法
ML.FORECAST(MODEL model_name, [, STRUCT<horizon INT64, confidence_level FLOAT64> settings])
model_name
model_name
是您要用于预测的模型的名称。如果您没有配置默认项目,请按照以下格式将项目 ID 添加到模型名称前面:`[PROJECT_ID].[DATASET].[MODEL]`(包括反引号);例如:`myproject.mydataset.mymodel`。
horizon
(可选)Horizon 是要预测的时间点数量。horizon 值的类型为 INT64,该值是设置 STRUCT 的一部分。默认值为 3,最大值为在时间序列模型的 CREATE MODEL 语句中指定的 horizon 值,如果未指定,则为 1000。在同时预测多个时间序列时,此参数适用于每个时间序列。
confidence_level
(可选)预测间隔中的未来值所占的百分比。confidence_level 值的类型为 FLOAT64,该值是设置 STRUCT 的一部分。默认值为 0.95。有效输入范围为 [0, 1)。
ML.FORECAST
输出
ML.FORECAST
在所有情况下都输出以下列:forecast_timestamp
、forecast_value
、standard_error
、confidence_level
、prediction_interval_lower_bound
、prediction_interval_upper_bound
、confidence_interval_lower_bound
、confidence_interval_upper_bound
。在同时预测多个时间序列时,还有一个额外的输出列:time_series_id
。
ML.FORECAST
的输出具有以下属性:
- 对于每个时间序列,输出行将按照
forecast_timestamp
的时间顺序排序。 - 无论输入
time_series_timestamp_col
的类型如何,forecast_timestamp
始终具有TIMESTAMP
类型。 forecast_value
是prediction_interval_lower_bound
和prediction_interval_upper_bound
的平均值。confidence_level
是用户指定的值,如果未指定,则为默认值。它在所有行中都相同。
ML.FORECAST
示例
以下查询使用 ML.FORECAST
和 0.8 的置信度预测 30 个时间点。
SELECT * FROM ML.FORECAST(MODEL `mydataset.mymodel`, STRUCT(30 AS horizon, 0.8 AS confidence_level))