BigQuery Explainable AI 概览
本文档介绍了 BigQuery ML 如何支持 Explainable 人工智能 (AI)(有时称为 XAI)。
Explainable AI 通过定义一行数据中的每个特征对预测结果的影响,帮助您了解预测机器学习模型为分类和回归任务生成的结果。这通常称为特征归因。您可以使用这些信息来验证模型的行为是否符合预期、识别模型中的偏差,以及提供改进模型和训练数据的方法。
如需了解每种模型类型支持的 SQL 语句和函数,请参阅每个模型的端到端用户体验历程。
局部与全局可解释性
可解释性有两种类型:局部可解释性和全局可解释性。这些特征也称为局部特征重要性和全局特征重要性。
- 局部可解释性为每个解释样本返回特征归因值。这些值描述了特定特征相对于基线预测对预测的影响程度。
- 全局可解释性返回特征对模型的总体影响,并且通常通过将特征归因汇总到整个数据集而获得。绝对值越高,表示特征对模型的预测影响越大。
BigQuery ML 中的 Explainable AI 产品
BigQuery ML 中的 Explainable AI 支持各种机器学习模型,包括时间序列和非时间序列模型。每个模型都利用不同的可解释性方法。
如果您想对已注册到 Model Registry 的 BigQuery ML 模型使用 Explainable AI,则需要遵循单独的要求。如需了解详情,请参阅在 BigQuery ML 模型上应用 Explainable AI。
模型类别 | 模型类型 | 可解释性方法 | 方法的基本说明 | 本地说明函数 | 全局说明函数 |
---|---|---|---|---|---|
监督式模型 | 线性回归和逻辑回归 | Shapley 值 | 线性模型的 Shapley 值等于 model weight * feature
value ,其中特征值是标准化的,模型权重使用标准化特征值进行训练。 |
ML.EXPLAIN_PREDICT 1 |
ML.GLOBAL_EXPLAIN 2 |
标准错误和 P 值 | 标准错误和 p 值用于根据模型权重进行重要性测试。 | 不适用 | ML.ADVANCED_WEIGHTS 4 |
||
提升树 随机森林 |
树 SHAP | 树 SHAP 是一种算法,用于为基于决策树的模型计算确切的 SHAP 值。 | ML.EXPLAIN_PREDICT 1 |
ML.GLOBAL_EXPLAIN 2 |
|
近似特征贡献 | 近似特征贡献值。与树 SHAP 相比,它更快、更简单。 | ML.EXPLAIN_PREDICT 1 |
ML.GLOBAL_EXPLAIN 2 |
||
基于 Gini 索引的特征重要性 | 全局特征重要性得分,表示每个特征在训练期间构建提升树或随机森林模型时的实用性或价值。 | 不适用 | ML.FEATURE_IMPORTANCE |
||
深度神经网络 (DNN) Wide & Deep |
积分梯度 | 一种基于梯度的方法,可以有效地计算具有与 Shapley 值相同的公理属性的特征属性。提供精确特征归因的采样近似值。其准确率由 integrated_gradients_num_steps 参数控制。 |
ML.EXPLAIN_PREDICT 1 |
ML.GLOBAL_EXPLAIN 2 |
|
AutoML Tables | 采样 Shapley | 采样 Shapley 会将模型结果的积分分配给每个特征,并考虑特征的不同排列。此方法可以提供精确 Shapley 值的近似采样值。 | 不适用 | ML.GLOBAL_EXPLAIN 2 |
|
时序模型 | ARIMA_PLUS | 时间序列分解 | 如果时间序列中存在这些组成部分,则将时间序列分解为多个组成部分。这些组成部分包括趋势、季节性、节假日、阶跃变化以及峰值和下降。如需了解详情,请参阅 ARIMA_PLUS 建模流水线。 | ML.EXPLAIN_FORECAST 3 |
不适用 |
ARIMA_PLUS_XREG | 时间序列分解 和 Shapley 值 |
将时间序列分解为多个组成部分,包括趋势、季节性、节假日、步骤变化以及高峰和低谷(类似于 ARIMA_PLUS)。每个外部回归器的归因均根据 Shapley 值计算,等于 model weight * feature value 。 |
ML.EXPLAIN_FORECAST 3 |
不适用 |
1ML_EXPLAIN_PREDICT
是 ML.PREDICT
的扩展版本。
2ML.GLOBAL_EXPLAIN
通过获取评估数据集内所有行的每个特征的平均绝对归因来返回全局可解释性。
3ML.EXPLAIN_FORECAST
是 ML.FORECAST
的扩展版本。
4ML.ADVANCED_WEIGHTS
是 ML.WEIGHTS
的扩展版本。