为什么在现代统计/机器学习中没有检查多重共线性

机器算法验证 回归 机器学习 多重共线性 正则化 方差膨胀因子
2022-02-11 01:40:42

在传统统计中,在构建模型时,我们使用方差膨胀因子(VIF)估计等方法检查多重共线性,但在机器学习中,我们使用正则化进行特征选择,似乎并没有检查特征是否相关一点也不。我们为什么要这样做?

4个回答

考虑多重共线性在回归分析中很重要,因为在 extrema 中,它直接关系到您的系数是否在数据中唯一标识。在不太严重的情况下,它仍然会干扰您的系数估计;用于估计的数据的微小变化可能会导致估计系数的剧烈波动。从推论的角度来看,这些可能是有问题的:如果两个变量高度相关,一个变量的增加可能会被另一个变量的减少抵消,因此综合效果是相互抵消。对于两个以上的变量,效果可能会更加微妙,但如果预测是稳定的,这对于机器学习应用来说通常就足够了。

考虑为什么我们在回归上下文中进行正则化:我们需要限制模型过于灵活。应用正确的正则化量将略微增加偏差,从而更大程度地减少方差。典型的例子是在回归中添加多项式项和交互作用:在退化的情况下,预测方程将插入数据点,但在尝试预测看不见的数据点的值时可能会很糟糕。缩小这些系数可能会最小化或完全消除其中一些系数并提高泛化能力。

然而,随机森林可以通过每次拆分时采样的变量数量来看到一个正则化参数:拆分越大mtry(可供选择的特征越多;其中一些比其他更好),您会得到更好的拆分,但这也使每棵树与其他树的相关性更高,从而在一定程度上减轻了首先估计多棵树的多样化效果。这种困境迫使人们找到正确的平衡,通常使用交叉验证来实现。重要的是,与回归分析相比,随机森林模型的预测不受高度共线变量的影响:即使其中两个变量提供相同的子节点纯度,您也可以只选择一个。

同样,对于像 SVM 这样的东西,您可以包含比特征更多的预测变量,因为内核技巧允许您仅对这些特征向量的内积进行操作。拥有比观察更多的特征将是回归中的一个问题,但内核技巧意味着我们只为每个样本估计一个系数,而正则化参数降低了解决方案的灵活性——这绝对是一件好事,因为估计个参数为CNN以不受限制的方式进行观察总是会在测试数据上产生一个完美的模型——我们回到原点,回到 ridge/LASSO/弹性网络回归场景,在这个场景中,我们限制了模型的灵活性,以检查过于乐观的模型。对 SVM 问题的 KKT 条件的回顾表明,SVM 解决方案是唯一的,因此我们不必担心回归案例中出现的识别问题。

最后,考虑多重共线性的实际影响它不会改变模型的预测能力(至少在训练数据上),但它确实会影响我们的系数估计。在大多数机器学习应用中,我们并不关心系数本身,只是我们模型预测的丢失,所以从这个意义上说,检查 VIF 实际上并不能回答一个重要的问题。(但如果数据的微小变化导致系数的巨大波动[多重共线性的典型症状],它也可能会改变预测,在这种情况下我们确实关心——但是所有这些 [我们希望!] 当我们执行交叉验证,这无论如何都是建模过程的一部分。)回归更容易解释,但解释可能不是某些任务最重要的目标。

原因是“传统统计”的目标与许多机器学习技术不同。

通过“传统统计”,我假设您的意思是回归及其变体。在回归中,我们试图了解自变量对因变量的影响。如果存在强多重共线性,这根本不可能。没有算法可以解决这个问题。如果好学与课堂出勤率和成绩相关,我们就无法知道真正导致成绩上升的原因是出勤率还是勤奋度。

然而,在专注于预测准确性的机器学习技术中,我们只关心如何使用一组变量来预测另一组变量。我们不关心这些变量对彼此的影响。

基本上,我们不检查机器学习技术中的多重共线性这一事实不是算法的结果,而是目标的结果。您可以通过注意到变量之间的强共线性不会损害回归方法的预测准确性来看到这一点。

这里似乎有一个基本假设,即不检查共线性是合理的甚至是最佳实践。这似乎有缺陷。例如,检查具有许多预测变量的数据集中的完美共线性将揭示两个变量是否实际上是同一事物,例如出生日期和年龄(示例取自Dormann 等人 (2013), Ecography , 36 , 1, pp 27–46)。我有时也看到在 Kaggle 比赛中出现完全相关的预测器问题,论坛上的竞争对手试图消除已匿名的潜在预测器(即预测器标签被隐藏,这是 Kaggle 和类似 Kaggle 的比赛中的常见问题)。

在机器学习中仍然存在选择预测变量的活动——识别高度相关的预测变量可以让工作人员找到作为另一个潜在(隐藏)变量的代理的预测变量,并最终找到一个最能代表潜在变量的变量或或者建议可以组合的变量(例如通过 PCA)。

因此,我建议尽管机器学习方法通​​常(或至少经常)被设计为在面对相关预测变量时具有鲁棒性,但了解预测变量的相关程度通常是生成鲁棒和准确模型的有用步骤,并且是获得优化模型的有用帮助。

多重共线性的主要问题是它弄乱了自变量的系数(β)。这就是为什么当你研究变量之间的关系、建立因果关系等时这是一个严重的问题。

但是,如果您对理解这一现象不太感兴趣,而只专注于预测和预测,那么多重共线性就不是问题了。或者至少人们是这么想的。

我不是在这里谈论完美的多重共线性,这是一个技术问题或识别问题。从技术上讲,它只是意味着设计矩阵导致奇异性,并且没有定义解决方案。