ML.TRAINING_INFO 函数

ML.TRAINING_INFO 函数

使用 ML.TRAINING_INFO 函数可查看模型训练迭代的相关信息。ML.TRAINING_INFO 可在 CREATE MODEL 查询运行时或运行后运行。如果您在首次训练迭代完成之前运行包含 ML.TRAINING_INFO 的查询,则查询将返回 Not found 错误。

ML.TRAINING_INFO 会返回以下列:

  • training_run:对于新创建的模型来说,此列中的值为零。如果通过 warm_start 重新训练模型,则此值会递增。
  • iteration:训练运行的迭代次数。首次迭代的值为零。训练运行每增加一次,该值就会递增。
  • loss:训练数据迭代后计算得出的损失指标。对于逻辑回归来说,损失为对数损失,对于线性回归来说,损失为均方误差。对于多类别逻辑回归来说,loss交叉熵对数损失。 对于显式矩阵分解模型,损失是根据已查看的输入评分计算的均方误差。 对于隐式矩阵分解模型,损失的计算公式如下:

    \( Loss = \sum_{u, i} c_{ui}(p_{ui} - x^T_uy_i)^2 + \lambda(\sum_u||x_u||^2 + \sum_i||y_i||^2) \)

    如需详细了解变量的含义,请点击此处

  • eval_loss:根据留出数据计算得出的损失指标。对于 k-means 模型,ML.TRAINING_INFO 不返回 eval_loss 列。如果 DATA_SPLIT_METHOD'NO_SPLIT',则 eval_loss 列中的所有条目均为 NULL

  • learning_rate:此迭代中的学习速率

  • duration_ms:迭代所用的时间,以毫秒为计量单位。

  • cluster_info:由 STRUCT 组成的 ARRAY,其中包含字段 centroid_idcluster_radiuscluster_sizeML.TRAINING_INFO 使用标准化特征计算 cluster_radiuscluster_size。仅针对 k-means 模型返回。

ML.TRAINING_INFO 权限

运行 ML.TRAINING_INFO 时需要 bigquery.models.createbigquery.models.getData

ML.TRAINING_INFO 语法

ML.TRAINING_INFO(MODEL `project_id.dataset.model`)

其中:

  • project_id 是您的项目 ID。
  • dataset 是包含此模型的 BigQuery 数据集。
  • model 是模型的名称。

ML.TRAINING_INFO 示例

以下示例从 mydatasetmymodel 中检索训练信息。该数据集位于默认项目中。

SELECT
  *
FROM
  ML.TRAINING_INFO(MODEL `mydataset.mymodel`)

ML.TRAINING_INFO 限制

ML.TRAINING_INFO 函数存在以下限制: