shap.plots.decision

shap.plots.decision(base_value, shap_values, features=None, feature_names=None, feature_order='importance', feature_display_range=None, highlight=None, link='identity', plot_color=None, axis_color='#333333', y_demarc_color='#333333', alpha=None, color_bar=True, auto_size_plot=True, title=None, xlim=None, show=True, return_objects=False, ignore_warnings=False, new_base_value=None, legend_labels=None, legend_location='best') DecisionPlotResult | None[源代码]

使用累积 SHAP 值可视化模型决策。

每条绘制的线解释了一个单一的模型预测。如果绘制单个预测,特征值将在图中打印(如果提供)。如果多个预测一起绘制,特征值将不会打印。一起绘制太多预测会使图表难以理解。

参数:
base_valuefloat 或 numpy.ndarray

这是特征贡献的起始参考值。通常,这是 explainer.expected_value

shap_valuesnumpy.ndarray

SHAP 值的矩阵(# 特征)或(# 样本 x # 特征)来自 explainer.shap_values()。或 SHAP 交互值的立方体(# 样本 x # 特征 x # 特征)来自 explainer.shap_interaction_values()

功能numpy.array 或 pandas.Series 或 pandas.DataFrame 或 numpy.ndarray 或 list

特征值矩阵(# 特征)或(# 样本 x # 特征)。这提供了所有特征的值,并可选地提供特征名称。

特征名称list 或 numpy.ndarray

特征名称列表(# 特征)。如果为 None,则可以从提供的 features 参数中推导名称(如果提供了 Pandas 对象)。否则,将生成数字特征名称。

feature_orderstr 或 None 或 list 或 numpy.ndarray

可以是“importance”(默认)、“hclust”(层次聚类)、None,或是一个索引的列表/数组。

feature_display_range: 切片或范围

在根据 feature_order 对特征进行排序后,要绘制的特征切片或范围。步长为 1 或 None 将按升序显示特征。步长为 -1 将按降序显示特征。如果 feature_display_range=None,则使用 slice(-1, -21, -1)``(即按降序显示最后 20 个特征)。如果 ``shap_values 包含交互值,特征的数量会自动扩展以包括所有可能的交互:N(N + 1)/2,其中 N = shap_values.shape[1]

高亮任何

指定要绘制为不同线条样式的观测值。支持所有 numpy 索引方法。例如,整数索引列表,或布尔数组。

链接str

使用“identity”或“logit”来指定用于x轴的变换。“logit”链接将对数几率转换为概率。

绘图颜色str 或 matplotlib.colors.ColorMap

用于绘制图线的颜色光谱。如果为 str,则假定为注册的 matplotlib 颜色名称。

axis_colorstr 或 int

用于绘制图表轴的颜色。

y_demarc_colorstr 或 int

用于在y轴上绘制特征分界线的颜色。

alpha浮动

用于绘制图线的 [0, 1] 范围内的 Alpha 混合值。

颜色条布尔

是否绘制颜色条(图例)。

自动调整图表大小布尔

是否自动调整 matplotlib 图表的大小以适应显示的特征数量。如果 False,请在使用此函数之前使用 matplotlib 指定图表大小。

标题str

图表的标题。

xlim: tuple[float, float]

x轴的范围(例如 (-1.0, 1.0))。如果未指定,则限制由以base_value为中心的最大/最小预测值决定,当 link="identity" 时。当 link="logit" 时,x轴范围为 (0, 1),中心为0.5。xlim 的值不会被 link 函数转换。此参数提供以简化在相同尺度上生成多个图以进行比较。

显示布尔

是否在返回前调用 matplotlib.pyplot.show()。将其设置为 False 允许在创建图表后进一步自定义图表。

返回对象布尔

Whether to return a DecisionPlotResult object containing various plotting features. This can be used to generate multiple decision plots using the same feature ordering and scale.

忽略警告布尔

绘制许多数据点或一次绘制太多特征可能会很慢,或者可能会创建非常大的图形。将此参数设置为 True 以覆盖防止绘制大量数据的硬编码限制。

new_base_value浮动

SHAP 值是相对于一个基值的。默认情况下,这个基值是模型原始预测的期望值。使用 new_base_value 可以将基值移动到一个任意值(例如,二分类任务的截止点)。

图例标签list of str

图例标签列表。如果为 None ,则不会显示图例。

图例位置str

图例位置。可以是以下任意一种:”最佳”、”右上”、”左上”、”左下”、”右下”、”右侧”、”中左”、”中右”、”下中”、”上中”、”中心”。

返回:
DecisionPlotResult 或 None

Returns a DecisionPlotResult object if return_objects=True. Returns None otherwise (the default).

示例

使用相同的特征顺序和x轴绘制两个决策图。

>>> range1, range2 = range(20), range(20, 40)
>>> r = decision_plot(base, shap_values[range1], features[range1], return_objects=True)
>>> decision_plot(base, shap_values[range2], features[range2], feature_order=r.feature_idx, xlim=r.xlim)

更多 决策图示例请见这里