解释给定分类器 wrt 特征的输出

数据挖掘 机器学习 分类 特征提取
2021-10-04 15:21:00

给定一个二元分类器,是否总是可以解释为什么它将某些输入分类为正类?我的意思是,如果我们有大量特征,是否有一个工具会说:“对于这个输出,这些特征是最能将其标记为正面的特征”?

谢谢 !

3个回答

试试这个库中的一些示例,它尝试使用机器学习来理解 Python 中的黑盒机器学习模型。

很难对如此广泛的问题给出一个很好的答案。

模型可解释性是一个很大的话题,通常取决于模型。更简单的模型,例如逻辑回归,比神经网络更容易解释。说“如果我能增加功能的话”很容易Xi乘以 1,则概率为y发生将增加βi”。

同样,单个决策树比随机森林更容易解释。然而,有些人试图通过计算“特征重要性”来解释随机森林,这可以通过多种方式计算,其中一种是包含该特征的分割数量相对于它分割的样本数量。

您想要一种将模型视为黑匣子并能够解释任何模型的方法吗?

我可以想到两种方法:

  1. 使用您的样本处理您的输入并查看输出会发生什么

一种典型的方法是更改​​输入并查看对模型性能的影响。在图像中,您可以将图像的某些部分涂黑,并查看哪些部分对准确性的贡献最大。这广泛用于卷积神经网络,否则很难解释。

对于数值变量,您可以将每个特征归零或添加一些噪声,并查看该单个特征对结果的影响。

我见过这种东西被广泛使用。

  1. 使用和不使用该功能进行训练

与上一个类似,不同之处在于您在使用和不使用该特征的情况下进行训练,并查看它对模型准确性的影响。

这有一个额外的好处,您不必像以前的方法那样考虑超参数,例如您将为每个功能添加多少噪音。此外,您可以通过尝试使用和不使用这些功能来更好地了解输出中多个功能的影响。

我还没有看到这种方法被使用,但显然它也在被使用,正如另一个人回答的那样。


无论如何,我会避免这种黑客行为。大多数模型都可以以某种方式解释。我见过人们甚至使循环神经网络可解释。而且,如果可解释性是一个问题,只需使用更容易解释和解释的更简单的模型。

有趣的是,我还没有听说过这样的事情,但是特征和目标变量之间的相关矩阵会给你一定程度的想法。如果相关性较高,那么这些特征很可能在预测目标时具有较高的发言权。如果您使用的是 python,我建议您使用 seaborn 可视化相关矩阵,这里是示例代码1