ML.FEATURES_AT_TIME 函数

本文档介绍 ML.FEATURES_AT_TIME 函数,此函数可让您在检索特征时对所有实体使用截止时间点,因为如果特征包含时间敏感数据,则可能具有时间依赖项。为避免数据泄露,请在训练模型和运行推断时使用时间点功能。

在检索特征时,可以使用此函数对所有实体使用相同的截止时间点。如果要为多个实体检索多个时间点的特征,请使用 ML.ENTITY_FEATURES_AT_TIME 函数

语法

ML.FEATURES_AT_TIME(
   { TABLE feature_table | (query_statement) }
   [, time => TIMESTAMP][, num_rows => INT64][, ignore_feature_nulls => BOOL])

参数

ML.FEATURES_AT_TIME 接受以下参数:

  • feature_table 是包含特征数据的 BigQuery 表的名称。特征表必须包含以下列:

    • entity_idSTRING 列,包含与特征相关的实体的 ID。
    • 一个或多个特征列。
    • feature_timestampTIMESTAMP 列,标识特征数据的上次更新时间。

    列名称不区分大小写。例如,您可以使用名为 Entity_ID 的列,而不是 entity_id

    特征表必须采用格式,每个特征占一列。

  • query_statementSTRING 值,指定返回特征数据的 GoogleSQL 查询。此查询返回的列必须与 feature_table 相同。如需了解 query_statement 子句支持的 SQL 语法,请参阅 GoogleSQL 查询语法

  • timeTIMESTAMP 值,指定用作特征数据的截止时间的时间点。仅返回 feature_timestamp 列中的值等于或早于 time 值的行。默认为 CURRENT_TIMESTAMP 函数的值。

  • num_rowsINT64 值,指定为每个实体 ID 返回的行数。默认值为 1

  • ignore_feature_nullsBOOL 值,指示是否将特征列中的 NULL 值替换为同一实体时间上最接近的前一行中的该特征列值。例如,对于以下特征表:

    +-----------+------+------+--------------------------+
    | entity_id | f1   | f2   | feature_timestamp        |
    +-----------+------+------+--------------------------+
    | '2'       | 5.0  | 8.0  | '2022-06-10 09:00:00+00' |
    +-----------+------+------+---------