BigQuery ML 模型评估概览
本文档介绍了 BigQuery ML 如何支持机器学习 (ML) 模型评估。
模型评估概览
您可以将机器学习模型评估指标用于以下用途:
- 评估模型与数据之间的拟合质量。
- 比较不同的模型。
- 在模型选择情境中,预测每个模型对特定数据集的预期准确率。
监督式和非监督式学习模型的评估方式有所不同:
- 对于监督式学习模型,模型评估是明确定义的。评估集(即模型尚未分析的数据)通常会从训练集中排除,然后用于评估模型性能。我们建议您不要使用训练集进行评估,因为这会导致模型在泛化新数据的预测结果时表现不佳。此结果称为过拟合。
- 对于非监督式学习模型,模型评估的定义不太明确,通常因模型而异。由于非监督式学习模型不预留评估集,因此使用整个输入数据集计算评估指标。
如需了解每种模型类型支持的 SQL 语句和函数,请参阅每个模型的端到端用户体验历程。
模型评估产品
BigQuery ML 提供以下函数来计算机器学习模型的评估指标:
模型类别 | 模型类型 | 模型评估函数 | 函数的作用 |
---|---|---|---|
监督式学习 | 线性回归 提升树回归器 随机森林回归器 DNN 回归器 Wide & Deep 回归器 AutoML Tables 回归器 |
ML.EVALUATE |
报告以下指标:
|
逻辑回归 提升树分类器 随机森林分类器 DNN 分类器 Wide & Deep 分类器 AutoML Tables 分类器 |
ML.EVALUATE |
报告以下指标:
|
|
ML.CONFUSION_MATRIX |
报告混淆矩阵。 | ||
ML.ROC_CURVE |
报告不同阈值的指标,包括:
仅适用于二元类分类模型。 |
||
非监督式学习 | K-means | ML.EVALUATE |
报告 Davies-Bouldin 索引,以及数据点与已分配聚类形心之间的均方距离。 |
矩阵分解 | ML.EVALUATE |
对于基于显式反馈的模型,报告以下指标:
|
|
对于基于隐式反馈的模型,报告以下指标: |
|||
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
并指定自定义阈值和输入数据。