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


20

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

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

因此,如果要进行线性回归,则可以引入L2或L1甚至弹性网正则化参数。为了获得稀疏解,L1惩罚有助于特征选择。

然后,是否仍需要在运行L1正则化或回归(例如Lasso)之前进行特征选择?从技术上讲,套索正在帮助我减少L1损失,那么为什么在运行算法之前需要选择特征?

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

有想法的人吗?


我要提出的一个问题是SVM正则化如何与内核方法一起工作?L2规范reg依赖于标准化的输入。但是,如果您使用内核(例如多项式),那么您的有效输入(即多项式幂)将不再标准化。
seanv507

Answers:


17

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

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

对于L1方法,我当然不会理会特征选择,因为L1准则通常在修剪特征时很有效。之所以有效,是因为它诱导了特征进入和离开模型的顺序,这减少了选择特征时可用选择的数量,因此不太容易过拟合。

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


嵌套交叉验证是什么意思?它是否将k倍交叉验证应用了N次?
yasin.yazici 2015年

5

jβ^j=.0001β^j=0

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

  1. 有时目标不是预测准确性,而是对世界现象的解释。有时您想知道什么变量会影响某些因变量,而不会影响某些因变量。在这种情况下,简约模型是理解和解释的首选方式
  2. β^Ĵ
  3. 计算上的原因-变量较少的模型通常运行速度更快,并且您不必存储这些无关紧要的变量的数据。

2
嗨,TrynnaDoStat,我完全同意你的观点1和3。但是论点2并没有真正达到目的。如果使用相同的数据集进行特征选择,还可能会选择错误的特征集。因为一个随机变量似乎与数据中的目标变量具有很好的相关性。
gstar2002 '17

β^Ĵ

0

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

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

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

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

最后,看一下神经网络。同样,这是一个可以忽略不相关特征的模型,通过反向传播进行训练通常会收敛到使用有趣的特征。然而,已知的是,如果输入是“白化的”,即按比例缩放至单位方差并且具有去除的互相关,则标准训练算法收敛得更快(LeCun等,1998)。因此,尽管您不必严格进行特征选择,但它可以纯粹以性能为代价来对输入数据进行预处理。

因此,总而言之,我想说特征选择与过度拟合无关,而与增强学习方法的分类能力和计算效率有关。需要多少取决于所讨论的方法。


3
(1)我不同意你的第一个主张。功能选择不会减少数据量,但会减少功能数量。实例(样本)的数量保持不变,并且可以帮助过度拟合,因为分类器需要较少的参数(如果是参数模型)来拟合数据。参数越少表示表示能力越小,因此过拟合的可能性越小。(2)您提到在KNN之前使用的特征选择算法的类型是什么?如何知道哪些功能会更有效?
yasin.yazici 2015年

@ yasin.yazici:假设您正在执行手写数字分类,并且丢弃了除最左上方的像素以外的所有像素。您是否只是减少了拥有的数据量?
CFH 2015年

@chf不,它只会减少功能数量。至少可以说数据集是MNIST,每个样本有784个特征,并且有60000个样本。如果丢掉部分功能,则仍然有60000个样本。
yasin.yazici 2015年

@ yasin.yazici:我的意思是,样本数量与数据量不同。数据是“样本x特征”的整个矩阵。
CFH 2015年

特征选择可能(并且经常会)过拟合。如果您使用的是正规学习者,并且不关心功能的重要性,那么除非您有大量的数据和可靠的验证方案,否则选择功能不会有太大用处。
Firebug

0

我认为,如果没有足够数量的数据点来可靠地优化参数,则可以进行特征选择以删除一些变量。但是我不建议做太多事情,因为这样可能会丢失要建模的信号。

另外,基于业务了解,您可能不希望在模型中使用某些功能,而可能要删除这些功能。


0

在套索的情况下,对数据进行预处理以去除令人讨厌的特征实际上是很常见的。有关讨论如何执行此操作的最新论文,请参见Xiang等人的“套索问题筛选测试”。我见过的论文中提到的共同动机是减轻解决方案的计算负担。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.