BigQuery ML 模型评估概览

本文档介绍了 BigQuery ML 如何支持机器学习 (ML) 模型评估。

模型评估概览

您可以将机器学习模型评估指标用于以下用途:

  • 用于评估模型与数据之间的拟合质量。
  • 比较不同的模型。
  • 在模型选择上下文中,预测每个模型在特定数据集上的执行准确率。

监督式和非监督式学习模型的评估方式有所不同:

  • 对于监督式学习模型,模型评估是明确定义的。评估集(尚未被模型分析的数据)通常从训练集中排除,然后用于评估模型性能。我们建议您不要使用训练集进行评估,因为这会导致模型在泛化新数据的预测结果时表现不佳。此结果称为过拟合
  • 对于非监督式学习模型,模型评估的定义不太明确,通常因模型而异。由于非监督式学习模型不预留评估集,因此使用整个输入数据集计算评估指标。

如需了解每种模型类型支持的 SQL 语句和函数,请参阅每个模型的端到端用户体验历程

模型评估产品

BigQuery ML 提供以下函数来计算机器学习模型的评估指标:

模型类别 模型类型 模型评估函数 函数的作用
监督式学习 线性回归

提升树回归器

随机森林回归器

DNN 回归器

Wide & Deep 回归器

AutoML Tables 回归器
ML.EVALUATE 报告以下指标:
  • 平均绝对误差
  • 均方误差
  • 均方根对数误差
  • 绝对中位差
  • r2 得分
  • 可解释方差
逻辑回归

提升树分类器

随机森林分类器

DNN 分类器

Wide & Deep 分类器

AutoML Tables 分类器
ML.EVALUATE 报告以下指标:
  • 精确率
  • recall
  • 准确性
  • F1 得分
  • 对数损失
  • ROC AUC
ML.CONFUSION_MATRIX 报告混淆矩阵
ML.ROC_CURVE 报告不同阈值的指标,包括以下各项:
  • recall
  • 假正例率
  • 真正例
  • 假正例
  • 真负例
  • 假负例

仅适用于二元类分类模型。
非监督式学习 K-means ML.EVALUATE 报告 Davies-Bouldin 索引,以及数据点与已分配聚类形心之间的均方距离。
矩阵分解 ML.EVALUATE 对于基于显式反馈的模型,报告以下指标:
  • 平均绝对误差
  • 均方误差
  • 均方根对数误差
  • 绝对中位差
  • r2 得分
  • 可解释方差
对于基于隐式反馈的模型,报告以下指标:
PCA ML.EVALUATE 报告总可解释方差率。
自动编码器 ML.EVALUATE 报告以下指标:
  • 平均绝对误差
  • 均方误差
  • 均方根对数误差
时序 ARIMA_PLUS ML.EVALUATE 报告以下指标:
  • 平均绝对误差
  • 均方误差
  • 平均绝对百分比误差
  • 对称平均绝对百分比误差

此函数需要新数据作为输入。
ML.ARIMA_EVALUATE 报告以不同 (p, d, q, has_drift) 元组为特征的所有 ARIMA 候选模型的以下指标:

此外,它还会报告有关季节性、节假日效应和高峰期和低谷期的其他信息。

此函数不需要新数据作为输入。

CREATE MODEL 语句中的自动评估

BigQuery ML 支持在模型创建期间进行自动评估。 根据模型类型、数据拆分训练选项以及您是否使用超参数调节,评估指标会根据预留的评估数据集、预留的测试数据集或整个输入数据集来计算。

  • 对于 k-means、PCA、autoencoder 和 ARIMA_PLUS 模型,BigQuery ML 会将所有输入数据用作训练数据,评估指标是针对整个输入数据集计算的。

  • 对于线性和逻辑回归、提升树、随机林、DNN、Wide & Deep、矩阵分解模型等评估模型,系统会根据以下 CREATE MODEL 选项指定的数据集计算评估指标:

    使用超参数调节训练这些类型的模型时,DATA_SPLIT_TEST_FRACTION 选项还有助于定义评估指标要计算的数据集。如需了解详情,请参阅数据拆分

  • 对于 AutoML Tables 模型,请参阅如何使用数据拆分进行训练和评估。

如需获取在创建模型期间计算得出的评估指标,请在未指定输入数据的模型上使用 ML.EVALUATE 等评估函数。如需查看示例,请参阅 ML.EVALUATE 且未指定输入数据

使用新数据集进行评估

创建模型后,您可以指定新的数据集进行评估。如需提供新数据集,请在模型上使用 ML.EVALUATE 等评估函数并指定输入数据。如需查看示例,请参阅具有自定义阈值和输入数据的 ML.EVALUATE