ML.FORECAST 函数

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_timestampforecast_valuestandard_errorconfidence_levelprediction_interval_lower_boundprediction_interval_upper_boundconfidence_interval_lower_boundconfidence_interval_upper_bound。在同时预测多个时间序列时,还有一个额外的输出列:time_series_id

ML.FORECAST 的输出具有以下属性:

  • 对于每个时间序列,输出行将按照 forecast_timestamp 的时间顺序排序。
  • 无论输入 time_series_timestamp_col 的类型如何,forecast_timestamp 始终具有 TIMESTAMP 类型。
  • forecast_valueprediction_interval_lower_boundprediction_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))