prediction_explanations#

预测解释工具。

子模块#

包内容#

函数#

explain_predictions

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

explain_predictions_best_worst

创建一份报告,总结数据集中根据与真实标签的误差衡量得出的最佳点和最差点的最主要贡献特征。

目录#

evalml.model_understanding.prediction_explanations.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 模型。对于 Stacked Ensemble 模型,使用每个输入管道的预测函数输入到元学习器的 SHAP 值。

参数
  • pipeline (PipelineBase) – 用于使用 SHAP 或 LIME 解释其预测的已拟合管道。

  • input_features (pd.DataFrame) – 用于评估管道的输入数据的 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.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 模型。对于 Stacked Ensemble 模型,使用每个输入管道的预测函数输入到元学习器的 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 的数据点数量不足以解释所需数量(num_to_explain)的两倍。

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

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

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