ML.WEIGHTS 函数

ML.WEIGHTS 函数

ML.WEIGHTS 函数允许您在预测期间查看模型使用的基准权重。

ML.WEIGHTS 返回以下列:

  • processed_input - 模型特征输入的名称。此列的值与训练期间使用的 SELECT 语句中的列名相匹配。
  • weight - 每个特征的权重。对于数值列,权重包含值且 category_weights 列为 NULL。对于转换为独热编码的非数值列,权重列为 NULL,category_weights 列为由每个类别的类别名称和权重组成的数组。
  • category_weights.category - 输入列为非数字时的类别名称。
  • category_weights.weight - 输入列为非数字时的类别权重。
  • class_label - 对于多类别模型,class_label 是给定权重的标签。在输出中,每个 <class_label, processed_input> 组合为一行。

TIMESTAMPprocessed_input 结果

当 BigQuery ML 遇到 TIMESTAMP 列时,它会从 TIMESTAMP 中提取一组组件,并对已提取的组件混合执行标准化和独热编码。使用 ML.WEIGHTS 函数时,您可以在 processed_input 列中查看转换结果。

下表显示了从 TIMESTAMP 中提取的组件及相应的转换方法。对于 processed_input 值,[COLUMN_NAME]TIMESTAMP 列的名称。

TIMESTAMP 组件 processed_input 结果 转换方法
Unix 时间(以秒为单位) [COLUMN_NAME] 标准化
日期 _TS_DOM_[COLUMN_NAME] 独热编码
星期几 _TS_DOW_[COLUMN_NAME] 独热编码
月份 _TS_MOY_[COLUMN_NAME] 独热编码
一天中的时间 _TS_HOD_[COLUMN_NAME] 独热编码
分钟 _TS_MOH_[COLUMN_NAME] 独热编码
一年中的周数(每周从星期日开始) _TS_WOY_[COLUMN_NAME] 独热编码
年份 _TS_YEAR_[COLUMN_NAME] 独热编码

ML.WEIGHTS 语法

ML.WEIGHTS(MODEL `project_id.dataset.model`)
          [, STRUCT(<T> as standardize)])

其中:

  • project_id 为您的项目 ID。
  • dataset 为包含该模型的 BigQuery 数据集。
  • model 为模型名称。
  • standardize 是一个可选参数,用于确定模型权重是否应标准化以假设所有特征的平均值为零且标准差为一。通过标准化权重,权重的绝对量级可相互比较。默认值为 false。提供的值必须是 STRUCT 中的唯一字段。

ML.WEIGHTS 示例

没有标准化的 ML.WEIGHTS

以下示例从 mydatasetmymodel 中检索权重信息。该数据集在默认项目中。

该查询返回与输入列 input_col 每个独热编码类别相关联的权重。

SELECT
  category,
  weight
FROM
  UNNEST((
    SELECT
      category_weights
    FROM
      ML.WEIGHTS(MODEL `mydataset.mymodel`)
    WHERE
      processed_input = 'input_col'))

此命令使用 UNNEST 函数,因为 category_weights 列是嵌套的重复列。

已标准化的 ML.WEIGHTS

以下示例从 mydatasetmymodel 中检索权重信息。该数据集在默认项目中。

该查询检索已标准化的权重,假设所有特征的平均值为零,标准差为一。

SELECT
  *
FROM
  ML.WEIGHTS(MODEL `mydataset.mymodel`,
    STRUCT(true AS standardize))

ML.WEIGHTS 限制

ML.WEIGHTS 函数受到以下限制:

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
BigQuery ML 文档