shap.plots.scatter

shap.plots.scatter(shap_values, color='#1E88E5', hist=True, axis_color='#333333', cmap=<matplotlib.colors.LinearSegmentedColormap object>, dot_size=16, x_jitter='auto', alpha=1, title=None, xmin=None, xmax=None, ymin=None, ymax=None, overlay=None, ax=None, ylabel='SHAP value', show=True)[源代码]

创建一个 SHAP 依赖散点图,按交互特征着色。

在x轴上绘制特征的值,在y轴上绘制相同特征的SHAP值。这显示了模型如何依赖于给定的特征,类似于经典部分依赖图的更丰富的扩展。数据点的垂直分散表示交互效应。y轴上的灰色刻度是特征值为NaN的数据点。

请注意,如果你想更改显示的数据,你可以更新 shap_values.display_features 属性,它将被用于绘图而不是 shap_values.data

参数:
shap_valuesshap.Explanation

一个 Explanation 对象的单列(即 shap_values[:,"特征A"])。

颜色字符串或 shap.Explanation

如何为散点图的点着色。这可以是一个固定的颜色字符串,或者是一个 Explanation 对象。如果它是一个 Explanation 对象,那么散点图的点将根据与 shap_values 参数给出的特征具有最强交互效应的特征进行着色。这是通过使用 shap.utils.approximate_interactions() 计算的。如果只传递了一个 Explanation 对象的单列,那么将使用该特征列来为数据点着色。

hist布尔

是否在x轴上显示一个轻量级的直方图以显示数据的密度。请注意,直方图是归一化的,因此如果所有点都在一个箱子中,那么该箱子将跨越图形的整个高度。默认为 True

x_jitter‘auto’ 或 float

通过指定0到1之间的浮点数,为特征值添加随机抖动。当特征为离散时,可能会提高绘图的可读性。默认情况下,x_jitter 是根据分类特征的自动检测选择的。

alpha浮动

数据点的透明度(介于0和1之间)。当使用大数据集时,这可以用来显示数据点的密度。

xmin浮点数或字符串

表示图表x轴的下限。它可以是一个格式为“percentile(float)”的字符串,表示用于x轴的特征值的百分位数。

xmax浮点数或字符串

表示图表x轴的上限。它可以是一个格式为“percentile(float)”的字符串,表示用于x轴的特征值的该百分位数。

axmatplotlib Axes 对象

可选地指定一个现有的 matplotlib Axes 对象,图表将被放置在其中。在这种情况下,我们不会创建一个 Figure,否则我们会创建。

显示布尔

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

示例

参见 散点图示例