超越 Python 包,创建 SHAP 值的定制可视化
SHAP 值是了解模型如何进行预测的绝佳工具。SHAP 包提供了许多可视化效果,使这个过程更加简单。话虽如此,我们不必完全依赖这个包。我们可以通过创建自己的 SHAP 图来进一步了解模型的工作原理。在本文中,我们将解释四个定制的 SHAP 图以及您可以从中学到什么。您可以在GitHub1上找到用于创建这些图的代码。
讨论的图表之一是图 1 中的瀑布图。这是一种可视化单个预测的 SHAP 值的好方法。模型做出的每个预测都会有自己的瀑布图。它可以用来准确解释每个特征对最终预测的贡献。例如,这只鲍鱼的壳重量使预测的环数减少了 1.82。
要创建此图,我们首先必须使用 SHAP 包计算 SHAP 值。然后我们将这些值传递到提供的瀑布图函数中。还有许多其他可用的图,但我们不一定非要使用它们。一旦我们有了 SHAP 值,我们就可以自由地创建自己的可视化效果。现在,让我们深入研究第一个。
图 1:SHAP 相关热图
正如我们在瀑布图中看到的,对于给定的预测,模型中的每个特征都会有一个 SHAP 值。我们能够计算这些 SHAP 值在所有预测中的相关性。对每个成对特征组合执行此操作,我们可以构建一个 SHAP 相关性热图,如图 2 所示。在这里我们可以看到,例如,鲍鱼壳直径(diameter
)和高度(height
)的 SHAP 值的相关性为 0.4。
我们可以将其与图 3 所示的标准相关性热图进行比较。这是使用特征值创建的,可以告诉我们特征是否相关。换句话说,它可以告诉我们两个特征是否倾向于朝相同方向或相反方向移动。另一方面,SHAP 值给出了特征对预测的贡献。因此,SHAP 相关性将告诉我们两个特征是否倾向于将预测移向