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
允许在创建图表后进一步自定义图表。
示例
参见 散点图示例。