shap.plots.force
- shap.plots.force(base_value, shap_values=None, features=None, feature_names=None, out_names=None, link='identity', plot_cmap='RdBu', matplotlib=False, show=True, figsize=(20, 3), ordering_keys=None, ordering_keys_time_format=None, text_rotation=0, contribution_threshold=0.05)
使用加性力图布局(additive force layout)来可视化给定的 SHAP 值。
- 参数:
- base_valuefloat 或 shap.Explanation
如果传入一个浮点数,此值为特征贡献的起始参考值。对于 SHAP 值,它应该是
explainer.expected_value的值。但是,推荐传入一个 SHAPExplanation对象来代替(在这种情况下,shap_values是不必要的)。- shap_valuesnumpy.array
SHAP 值的矩阵(# features)或(# samples x # features)。如果这是一个一维数组,将绘制单个力图。如果它是一个二维数组,将绘制一个堆叠的力图。
- featuresnumpy.array
特征值的矩阵(# features)或(# samples x # features)。这提供了所有特征的值,并且其形状应与
shap_values参数相同。- feature_nameslist
特征名称列表(# features)。
- out_namesstr
模型输出的名称(用复数形式以便将来支持多输出绘图)。
- link“identity” 或 “logit”
绘制刻度线标签时使用的转换。使用 “logit” 会将对数几率(log-odds)数值转换为概率。
- plot_cmapstr 或 list[str]
要使用的颜色映射。它可以是一个字符串(默认为
RdBu)或一个十六进制颜色字符串列表。- matplotlibbool
是使用默认的 Javascript 输出,还是使用(开发程度较低的)matplotlib 输出。在渲染 Javascript/HTML 不方便的场景中,使用 matplotlib 会很有帮助。默认为 False。
- showbool
是否在返回前调用
matplotlib.pyplot.show()。将其设置为False允许在创建图表后对其进行进一步的自定义。仅当matplotlib设置为 True 时适用。- figsize
matplotlib 输出的图形大小。
- contribution_thresholdfloat
控制在力图上显示的特征名称/值。只有那些其 shap 值绝对值大于 min_perc * (所有 shap 绝对值之和) 的特征才会被显示。