解释器#

预测解释工具。

模块内容#

类摘要#

ExplainPredictionsStage

预测阶段的枚举。

函数#

abs_error

计算回归问题中每个数据点的绝对误差。

cross_entropy

计算分类问题中每个数据点的交叉熵损失。

explain_predictions

创建报告,总结输入特征中每个数据点贡献最大的特征。

explain_predictions_best_worst

创建报告,总结数据集中根据与真实标签的误差衡量,表现最好和最差的点的贡献最大的特征。

属性摘要#

内容#

evalml.model_understanding.prediction_explanations.explainers.abs_error(y_true, y_pred)[source]#

计算回归问题中每个数据点的绝对误差。

参数
  • y_true (pd.Series) – 真实标签。

  • y_pred (pd.Series) – 预测值。

返回值

np.ndarray

evalml.model_understanding.prediction_explanations.explainers.cross_entropy(y_true, y_pred_proba)[source]#

计算分类问题中每个数据点的交叉熵损失。

参数
  • y_true (pd.Series) – 编码为整数的真实标签。

  • y_pred_proba (pd.DataFrame) – 预测概率。每列代表一个类别。

返回值

np.ndarray

evalml.model_understanding.prediction_explanations.explainers.DEFAULT_METRICS#
evalml.model_understanding.prediction_explanations.explainers.explain_predictions(pipeline, input_features, y, indices_to_explain, top_k_features=3, include_explainer_values=False, include_expected_value=False, output_format='text', training_data=None, training_target=None, algorithm='shap')[source]#

创建报告,总结输入特征中每个数据点贡献最大的特征。

SHAP 算法目前不支持 XGBoost 模型和 CatBoost 多类分类器。要解释 XGBoost 模型预测,请使用 LIME 算法。LIME 算法目前不支持任何 CatBoost 模型。对于堆叠集成模型,使用每个输入管线的预测函数对元学习器的 SHAP 值。

参数
  • pipeline (PipelineBase) – 已拟合的管线,我们想使用 SHAP 或 LIME 解释其预测。

  • input_features (pd.DataFrame) – 用于评估管线的输入数据的数据框。

  • y (pd.Series) – 输入数据的标签。

  • indices_to_explain (list[int]) – 要解释的整数索引列表。

  • top_k_features (int) – 对于每个数据点,在表格中包含多少个贡献最高/最低的特征。默认为 3。

  • include_explainer_values (bool) – 是否应在表格中包含解释器(SHAP 或 LIME)值。默认为 False。

  • include_expected_value (bool) – 是否应在表格中包含期望值。默认为 False。

  • output_format (str) – “text”、“dict”或“dataframe”之一。默认为“text”。

  • training_data (pd.DataFrame, np.ndarray) – 用于训练管线的数据。对于时间序列管线,此参数是必需的且仅用于此。

  • training_target (pd.Series, np.ndarray) – 用于训练管线的标签。对于时间序列管线,此参数是必需的且仅用于此。

  • algorithm (str) – 生成贡献最大特征时使用的算法,可以是“shap”或“lime”之一。默认为“shap”。

返回值

一份报告,解释 input_features 中每一行预测的贡献最大特征。

报告将包含特征名称、预测贡献和解释器值(可选)。

返回类型

str, dict, 或 pd.DataFrame

引发异常
  • ValueError – 如果 input_features 为空。

  • ValueError – 如果提供的 output_format 不是“text”、“dict”或“dataframe”。

  • ValueError – 如果请求的索引超出 input_feature 的边界。

evalml.model_understanding.prediction_explanations.explainers.explain_predictions_best_worst(pipeline, input_features, y_true, num_to_explain=5, top_k_features=3, include_explainer_values=False, metric=None, output_format='text', callback=None, training_data=None, training_target=None, algorithm='shap')[source]#

创建报告,总结数据集中根据与真实标签的误差衡量,表现最好和最差的点的贡献最大的特征。

SHAP 算法目前不支持 XGBoost 模型和 CatBoost 多类分类器。要解释 XGBoost 模型预测,请使用 LIME 算法。LIME 算法目前不支持任何 CatBoost 模型。对于堆叠集成模型,使用每个输入管线的预测函数对元学习器的 SHAP 值。

参数
  • pipeline (PipelineBase) – 已拟合的管线,我们想使用 SHAP 或 LIME 解释其预测。

  • input_features (pd.DataFrame) – 用于评估管线的输入数据。

  • y_true (pd.Series) – 输入数据的真实标签。

  • num_to_explain (int) – 要解释的最好、最差、随机数据点的数量。

  • top_k_features (int) – 对于每个数据点,在表格中包含多少个贡献最高/最低的特征。

  • include_explainer_values (bool) – 是否应在表格中包含解释器(SHAP 或 LIME)值。默认为 False。

  • metric (callable) – 用于识别数据集中最好和最差点的评估指标。函数必须只接受真实标签和预测值或概率作为参数,且值越低越好。默认情况下,回归问题将使用绝对误差,分类问题将使用交叉熵损失。

  • output_format (str) – “text”或“dict”之一。默认为“text”。

  • callback (callable) – 用于接收增量更新的回调函数。包含以下参数: - progress_stage:计算阶段 - time_elapsed:自调用开始以来经过的总秒数

  • training_data (pd.DataFrame, np.ndarray) – 用于训练管线的数据。对于时间序列管线,此参数是必需的且仅用于此。

  • training_target (pd.Series, np.ndarray) – 用于训练管线的标签。对于时间序列管线,此参数是必需的且仅用于此。

  • algorithm (str) – 生成贡献最大特征时使用的算法,可以是“shap”或“lime”之一。默认为“shap”。

返回值

一份报告,解释 input_features 中最好/最差预测的贡献最大特征。

对于 input_features 中最好/最差的每一行,将列出预测值、真实标签、评估指标值、特征名称、预测贡献和解释器值(可选)。

返回类型

str, dict, 或 pd.DataFrame

引发异常
  • ValueError – 如果 input_features 的特征数量不足请求解释数量的两倍。

  • ValueError – 如果 y_true 和 input_features 长度不匹配。

  • ValueError – 如果提供的 output_format 不是“text”、“dict”或“dataframe”。

  • PipelineScoreError – 如果管线在评分时出错。

class evalml.model_understanding.prediction_explanations.explainers.ExplainPredictionsStage[source]#

预测阶段的枚举。

属性

COMPUTE_EXPLAINER_VALUES_STAGE

compute_explainer_value_stage

COMPUTE_FEATURE_STAGE

compute_feature_stage

DONE

done

PREDICT_STAGE

predict_stage

PREPROCESSING_STAGE

preprocessing_stage

方法

name

枚举成员的名称。

value

枚举成员的值。

name(self)#

枚举成员的名称。

value(self)#

枚举成员的值。