shap.plots.scatter
- shap.plots.scatter(shap_values: ~shap._explanation.Explanation, color: str | ~shap._explanation.Explanation | None = '#1E88E5', hist: bool = True, axis_color='#333333', cmap=<matplotlib.colors.LinearSegmentedColormap object>, dot_size=16, x_jitter: float | ~typing.Literal['auto'] = 'auto', alpha: float = 1.0, title: str | None = None, xmin: ~shap._explanation.Explanation | str | float | None = None, xmax: ~shap._explanation.Explanation | str | float | None = None, ymin: ~shap._explanation.Explanation | str | float | None = None, ymax: ~shap._explanation.Explanation | str | float | None = None, overlay: dict[str, ~typing.Any] | None = None, ax: ~matplotlib.axes._axes.Axes | None = None, ylabel: str = 'SHAP value', show: bool = True)
创建一个 SHAP 依赖散点图,可选择按交互特征着色。
该图在 x 轴上绘制特征值,在 y 轴上绘制同一特征的 SHAP 值。这显示了模型如何依赖于给定特征,并且是经典局部依赖图的更丰富扩展。数据点的垂直离散度表示交互效应。y 轴上的灰色刻度线是特征值为 NaN 的数据点。
请注意,如果您想更改显示的数据,可以更新
shap_values.display_features属性,之后它将用于绘图,而不是shap_values.data。- 参数:
- shap_valuesshap.Explanation
通常是
Explanation对象的一列(即shap_values[:, "Feature A"])。或者,传递多列来创建多个子图(即
shap_values[:, ["Feature A", "Feature B"]])。- color字符串或 shap.Explanation,可选
如何为散点图的点着色。这可以是一个固定的颜色字符串,也可以是一个
Explanation对象。如果它是一个
Explanation对象,那么散点图的点将根据似乎与shap_values参数给出的特征具有最强交互效应的特征进行着色。这是使用shap.utils.approximate_interactions()计算的。如果只传递
Explanation对象的单列,则该特征列将用于为数据点着色。- hist布尔值
是否在 x 轴上显示一个浅色直方图以显示数据密度。请注意,直方图经过归一化,如果所有点都在一个箱体中,则该箱体将占据图表的整个高度。默认为
True。- x_jitter‘auto’ 或浮点数
通过指定 0 到 1 之间的浮点数,为特征值添加随机抖动。当特征是离散的时,这可能会增加图表的可读性。默认情况下,
x_jitter的值是基于对分类特征的自动检测来选择的。- title: str,可选
图表标题。
- alphafloat
数据点的透明度(介于 0 和 1 之间)。在使用大数据集时,这对于显示数据点的密度很有用。
- xmin, xmax, ymin, ymax浮点数、字符串、聚合的 Explanation 或 None
期望的坐标轴限制。可以是一个浮点数来指定固定限制。
可以是一个格式为
"percentile(float)"的字符串,表示特征值的百分位数。它也可以是
Explanation对象单列的聚合列,例如explanation[:, "feature_name"].percentile(20)。- overlay: dict,可选
可选字典,包含最多三个要作为线图叠加的额外曲线。
该字典将曲线名称映射到一个 (xvalues, yvalues) 对的列表,其中每个要绘制的特征都有一对。
- axmatplotlib Axes,可选
可选地指定一个现有的
matplotlib.axes.Axes对象,图表将被绘制到该对象中。仅在绘制单个特征时支持。
- showbool
在返回前是否调用
matplotlib.pyplot.show()。将其设置为
False允许在图表创建后对其进行进一步的自定义。
- 返回:
- axmatplotlib Axes 对象
返回绘制了图表的
Axes对象。仅在show=False时返回。
示例
请参阅散点图示例。