了解哪些特征对逻辑回归最重要

机器算法验证 机器学习 物流 特征选择 重要性
2022-02-04 10:33:09

我已经建立了一个逻辑回归分类器,它对我的​​数据非常准确。现在我想更好地理解为什么它工作得这么好。具体来说,我想对哪些特征做出最大贡献(哪些特征最重要)进行排名,并且理想情况下,量化每个特征对整个模型的准确性(或类似的东西)的贡献程度。我该怎么做呢?

我的第一个想法是根据它们的系数对它们进行排名,但我怀疑这不可能。如果我有两个同样有用的功能,但第一个的传播是第二个的十倍,那么我希望第一个获得的系数低于第二个。是否有更合理的方法来评估特征重要性?

请注意,我并不是想了解功能的微小变化对结果概率的影响程度。相反,我试图了解每个特征在使分类器准确方面的价值。此外,我的目标不是执行特征选择或构建具有较少特征的模型,而是尝试为学习模型提供一些“可解释性”,因此分类器不仅仅是一个不透明的黑盒。

4个回答

首先要注意的是,您不使用逻辑回归作为分类器。是二元的这一事实与使用这种最大似然法对观测值进行实际分类完全无关。一旦你超越了这一点,专注于黄金标准信息度量,它是最大似然的副产品:似然比统计量。您可以生成一个图表,显示每个预测变量的部分贡献,根据它的部分Yχ2χ2统计。这些统计数据具有最大的信息/能力。一旦考虑了其他预测变量,您可以使用引导程序通过获取每个预测变量提供的预测信息等级的置信区间来显示选择“赢家”和“输家”的难度。我的课程笔记的第 5.4 节中有一个例子——点击讲义。

如果你有高度相关的特征,你可以做一个“块测试”来结合它们的影响。图 15.11 给出了执行此操作的图表,其中size表示 4 个独立预测变量的综合贡献。

简短的回答是,没有一个单一的、“正确”的方式来回答这个问题。

有关这些问题的最佳评论,请参阅 Ulrike Groemping 的论文,例如基于方差分解的线性回归中的相对重要性的估计器她讨论的选项范围从简单的启发式到复杂的、CPU 密集型的多变量解决方案。

http://prof.beuth-hochschule.de/fileadmin/prof/groemp/downloads/amstat07mayp139.pdf

Groemping 在一个名为 RELAIMPO 的 R 包中提出了她自己的方法,这也值得一读。

https://cran.r-project.org/web/packages/relaimpo/relaimpo.pdf

我使用的一种快速而肮脏的启发式方法是将与每个参数相关的卡方(F 值、t 统计量)相加,然后用该总和重新计算各个值的百分比。结果将是可排名的相对重要性的度量。

也就是说,我从来都不是“标准化贝塔系数”的粉丝,尽管它们经常被专业人士推荐并被广泛使用。这是他们的问题:标准化是单变量的并且在模型解决方案之外。换句话说,这种方法没有反映模型结果的条件性质。

一种相当稳健的方法是尝试拟合模型 N 次,其中 N 是特征的数量。每次使用 N-1 个特征并留下一个特征。然后,您可以使用您最喜欢的验证指标来衡量每个特征的包含或排除对模型性能的影响程度。根据您拥有的功能数量,这可能在计算上很昂贵。

您的观察是正确的,仅查看估计系数的大小|βj^|由于提到的原因,它不是很有意义。但是一个简单的调整是将系数估计值乘以预测变量的估计标准差|βj^|σ^j并将其用作重要性的衡量标准。这有时被称为标准化 beta 系数,在逻辑回归中,它表示由一个标准差变化引起的估计成功对数几率的变化。xj. 一个问题是,当您不再处理数字预测变量时,它就会崩溃。

关于你的最后一点,当然,一个变量可能会对估计的对数赔率做出很大贡献,而实际上并不会对“真实”对数赔率产生太大影响,但我认为如果我们不需要太担心这一点对产生估计的程序有任何信心。