在使用正则化算法时,我们还需要进行特征选择吗?

机器算法验证 回归 机器学习 特征选择 套索 正则化
2022-02-02 14:29:49

我有一个关于在运行统计学习算法之前需要使用特征选择方法(随机森林特征重要性值或单变量特征选择方法等)的问题。

我们知道为了避免过度拟合,我们可以在权重向量上引入正则化惩罚。

所以如果我想做线性回归,那么我可以引入 L2 或 L1 甚至 Elastic 网络正则化参数。为了获得稀疏解决方案,L1 惩罚有助于特征选择。

那么在运行 L1 正则化回归(例如 Lasso)之前是否还需要进行特征选择?从技术上讲,Lasso 正在帮助我通过 L1 惩罚来减少特征,那么为什么在运行算法之前需要选择特征呢?

我读了一篇研究文章,说先做 Anova 然后 SVM 比单独使用 SVM 提供更好的性能。现在的问题是:SVM 本质上使用 L2 范数进行正则化。为了最大化边距,它正在最小化权重向量范数。所以它正在对其目标函数进行正则化。那么从技术上讲,诸如 SVM 之类的算法不应该为特征选择方法而烦恼吗?但是报告仍然说在普通 SVM 之前进行单变量特征选择更强大。

有想法的人吗?

4个回答

特征选择有时会提高正则化模型的性能,但根据我的经验,它通常会使泛化性能变差。原因是我们对模型做出的选择越多(包括参数的值、特征的选择、超参数的设置、内核的选择……),我们需要做的数据就越多这些选择可靠。通常,我们通过最小化在有限数据集上评估的某些标准来做出这些选择,这意味着该标准不可避免地具有非零方差。结果,如果我们过于激进地最小化标准,我们可能会过拟合,即我们可以做出最小化标准的选择,因为特征依赖于评估它的特定样本,而不是因为它会产生一个真正的性能提升。

现在 SVM 是不依赖于维度的泛化性能界限的近似实现,因此原则上,只要正确选择正则化参数,我们可以在没有特征选择的情况下获得良好的性能。大多数特征选择方法都没有这样的性能“保证”。

对于 L1 方法,我当然不会为特征选择而烦恼,因为 L1 标准通常在修剪特征方面是有效的。它有效的原因是它引入了特征进入和离开模型的顺序,这减少了选择特征时可用的选择数量,因此不太容易出现过度拟合。

选择特征的最佳理由是找出哪些特征是相关/重要的。特征选择最糟糕的原因是为了提高性能,对于正则化模型,通常它会使事情变得更糟。但是,对于某些数据集,它可能会产生很大的不同,因此最好的办法是尝试它并使用稳健、无偏见的性能评估方案(例如嵌套交叉验证)来确定您的数据集是否是这些数据集之一。

很多人确实认为正则化足以处理无关变量,如果您适当地进行正则化、进行部分池化、创建分层模型等,而目标​​是预测准确性,则不需要进行变量选择。例如,如果一个特定变量的参数估计被正则化到或完全从模型中删除()真的没有' t 在预测问题上有很大的不同。jβ^j=.0001β^j=0

但是,仍然有理由完全删除变量。

  1. 有时目标不是预测的准确性,而是对世界现象的解释。有时您想知道哪些变量会影响某个因变量,哪些不会影响某个因变量。在这些类型的情况下,简约模型是理解和解释的首选方式
  2. 你正在为风险做准备。如果你留下一个真正没有影响这对于使用不同应用程序一遍又一遍地改装的模型尤其相关。β^j
  3. 计算原因 - 具有较少变量的模型通常运行得更快,并且您不必为那些无关变量存储数据。

我不认为过度拟合是我们首先需要特征选择的原因。事实上,如果我们没有为模型提供足够的数据,就会发生过拟合,而特征选择会进一步减少我们通过算法的数据量。

相反,我会说,对于没有能力自行确定特征重要性的模型,或者对于必须自行进行重要性加权的算法效率低得多的模型,需要特征选择作为预处理步骤.

以基于欧几里得距离的简单 k 近邻算法为例。它将始终将所有特征视为对最终分类具有相同权重或重要性。因此,如果你给它 100 个特征,但其中只有三个与你的分类问题相关,那么来自这些额外特征的所有噪声将完全淹没来自三个重要特征的信息,并且你不会得到任何有用的预测。如果您事先确定关键特征并仅将其传递给分类器,它会工作得更好(更不用说更快了)。

另一方面,看一个随机森林分类器。在训练时,它将通过从所有特征的子集中选择最佳分割来自动确定哪些特征最有用。因此,它会更好地筛选 97 个无用的特征来找到三个好的特征。当然,如果你事先进行选择,它仍然会运行得更快,但它的分类能力通常不会因为给它很多额外的特征而受到太大影响,即使它们不相关。

最后,看看神经网络。同样,这是一个能够忽略不相关特征的模型,通过反向传播进行的训练通常会收敛到使用有趣的特征。然而,众所周知,如果输入被“白化”,即缩放到单位方差并消除了互相关,则标准训练算法收敛得更快(LeCun 等人,1998 年)因此,尽管您并不严格需要进行特征选择,但在纯粹的性能方面可以对输入数据进行预处理。

所以总而言之,我会说特征选择与过度拟合的关系不大,而更多的是与提高学习方法的分类能力和计算效率有关。需要多少很大程度上取决于所讨论的方法。

在 lasso 的情况下,预处理数据以去除讨厌的特征实际上是很常见的。对于最近讨论如何做到这一点的论文,请参阅Xiang et al's Screening Tests for Lasso Problems我看到的论文中提到的共同动机是减少计算解决方案的计算负担。