解释器#
预测解释工具。
模块内容#
类摘要#
预测阶段的枚举。 |
函数#
计算回归问题中每个数据点的绝对误差。 |
|
计算分类问题中每个数据点的交叉熵损失。 |
|
创建报告,总结输入特征中每个数据点贡献最大的特征。 |
|
创建报告,总结数据集中根据与真实标签的误差衡量,表现最好和最差的点的贡献最大的特征。 |
属性摘要#
内容#
- 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(self)#
枚举成员的名称。
- value(self)#
枚举成员的值。