在模型和数据集上运行ML_EXPLAIN
例程会训练预测解释器和模型解释器,并将模型解释添加到模型目录中。
CALL sys.ML_EXPLAIN ('table_name', 'target_column_name',
model_handle_variable, [options]);
options: {
JSON_OBJECT('key','value'[,'key','value'] ...)
'key','value':
|'model_explainer', {'permutation_importance'|'partial_dependence'|'shap'|'fast_shap'}| NULL
|'prediction_explainer', {'permutation_importance'|'shap'}
|'columns_to_explain', JSON_ARRAY('column'[,'column'] ...)
|'target_value', 'target_class'
}
从 MySQL HeatWave 8.0.31 开始,在使用
ML_TRAIN
例程后,使用
ML_EXPLAIN
例程为 HeatWave ML 训练预测解释器和模型解释器。您必须训练预测解释器才能使用
ML_EXPLAIN_ROW
和
ML_EXPLAIN_TABLE
。在早期版本中,
ML_TRAIN
例程训练默认的排列重要性模型和预测解释器。请参阅
第 3.5 节,“培训解释器”。
ML_EXPLAIN
参数:
table_name
:包含标记训练数据集的表的名称。表名必须有效且完全合格;也就是说,它必须包含模式名称 (
.schema_name
table_name
)。用于NULL
帮助。使用模型训练过的数据集——ML_EXPLAIN
在模型未训练过的数据集上运行会产生错误或不可靠的解释。target_column_name
:包含地面真值的训练数据集中目标列的名称。-
model_handle
:包含模型目录中模型的模型句柄的字符串。用于NULL
帮助。模型说明存储在此模型元数据中。必须首先加载模型,例如:CALL sys.ML_MODEL_LOAD('ml_data.iris_train_user1_1636729526', NULL);
如果您
ML_EXPLAIN
使用相同的模型句柄和模型解释器再次运行,模型解释字段将被新结果覆盖。 -
options
JSON_OBJECT()
: 可选参数,格式为键值对 。如果未指定选项,则使用默认设置。如果您指定NULL
代替JSON_OBJECT()
参数,则训练默认排列重要性模型解释器,并且不训练预测解释器。可用的选项是:-
model_explainer
:指定模型解释器。有效值为:permutation_importance
:默认模型解释器。shap
: SHAP 模型解释器,它根据 Shapley 值生成全局特征重要性值。fast_shap
:快速 SHAP 模型解释器,它是 SHAP 模型解释器的子采样版本,通常具有更快的运行时间。-
partial_dependence
:说明更改一列或多列中的值将如何更改模型预测的值。partial_dependence
模型解释 器需要以下附加参数:columns_to_explain
: 由 指定的表中一个或多个列名的 JSON 数组
。模型解释器解释了更改此列或列中的值如何影响模型。table_name
target_value
:一个有效值,目标列包含由 指定的真实值,target_column_name
可以采用。
-
prediction_explainer
:指定预测解释器。有效值为:permutation_importance
:默认预测解释器。shap
:SHAP 预测解释器,它根据 Shapley 值生成全局特征重要性值。
-
-
首先加载模型:
CALL sys.ML_MODEL_LOAD('ml_data.iris_train_user1_1636729526', NULL);
-
运行
ML_EXPLAIN
训练 SHAP 预测解释器和 Fast SHAP 模型解释器:CALL sys.ML_EXPLAIN('ml_data.`iris_train`', 'class', 'ml_data.iris_train_user1_1636729526', JSON_OBJECT( 'model_explainer', 'fast_shap', 'prediction_explainer', 'shap'));
-
运行
ML_EXPLAIN
并指定NULL
选项训练默认的排列重要性模型解释器和无预测解释器:CALL sys.ML_EXPLAIN('ml_data.`iris_train`', 'class', 'ml_data.iris_train_user1_1636729526', NULL);
-
运行
ML_EXPLAIN
以训练部分依赖模型解释器(需要额外的选项)和 SHAP 预测解释器:CALL sys.ML_EXPLAIN('ml_data.`iris_train`', 'class', @iris_model, JSON_OBJECT( 'columns_to_explain', JSON_ARRAY('sepal width'), 'target_value', 'Iris-setosa', 'model_explainer', 'partial_dependence', 'prediction_explainer', 'shap'));
-
查看模型解释,在本例中由 Permutation Importance 模型解释器生成:
SELECT model_explanation FROM MODEL_CATALOG WHERE model_handle = @iris_model; +----------------------------------------------------------------------------------------------------------------------+ | model_explanation | +----------------------------------------------------------------------------------------------------------------------+ | {"permutation_importance": {"petal width": 0.5926, "sepal width": 0.0, "petal length": 0.0423, "sepal length": 0.0}} | +----------------------------------------------------------------------------------------------------------------------+