使用主成分分析(PCA)进行特征选择


54

我是功能选择的新手,我想知道您将如何使用PCA进行功能选择。PCA是否为每个输入变量计算一个相对分数,您可以使用它来过滤掉非信息性输入变量?基本上,我希望能够按差异或所包含的信息量对数据中的原始特征进行排序。

Answers:


75

使用PCA作为特征选择工具时的基本思想是根据变量的系数(载荷)的大小(从绝对值的最大到最小)选择变量。您可能还记得,PCA试图用原始变量的不相关的线性组合(投影)替换(或多或少相关的)变量。让我们忽略如何为当前问题选择最佳。这主要成分通过其解释的方差按重要性排序,每个变量对每个成分的贡献程度不同。使用最大方差准则将类似于特征提取ķ < p ķ ķpk<pkk ,其中主要组件用作新功能,而不是原始变量。但是,我们可以决定仅保留第一个分量,然后选择绝对系数最高的变量;数量可能基于变量数量的比例(例如,仅保留变量的前10%)或固定的截止值(例如,考虑归一化系数的阈值)。该方法与惩罚回归(或PLS回归)中的Lasso运算符有些相似。但是,的值或要保留的分量数都不是显而易见的选择。j p jj<pjpj

使用PCA的问题在于:(1)将所有原始变量的测量结果用于投影到较低维度的空间中;(2)仅考虑线性关系;(3)以及基于PCA或SVD的方法作为单变量筛选方法(t检验,相关性等),请不要考虑数据结构的潜在多变量性质(例如,变量之间的更高阶交互)。

关于第1点,已经提出了一些更复杂的筛选方法,例如主要特征分析或逐步方法,例如在基因表达研究中用于“ 基因剃须 ” 的一种。同样,稀疏PCA可以用于基于结果变量加载来执行尺寸缩减和变量选择。关于第2点,如果需要将非线性关系嵌入到较低维度的空间中,则可以使用内核PCA(使用内核技巧)。决策树,或者更好的是随机森林算法,可能能够更好地解决第3点。后者可以派生基于Gini或基于置换的重要程度的度量。

最后一点:如果您打算在应用分类或回归模型之前执行特征选择,请确保对整个过程进行交叉验证(请参阅《统计学习要素》的 7.10.2节,或Ambroise和McLachlan,2002年)。


您似乎对R解决方案感兴趣,所以我建议您看一下插入符号包,其中包括许多方便的函数,用于分类或回归上下文中的数据预处理和变量选择。


1
这里有很多很好的信息,但是令我惊讶的是,没有提到全民教育。我认为因素分析适合于特征选择/降维,而PCA确实仅适合于重新表示您的数据,从而使变量不相关。我猜你不同意吗?
gung-恢复莫妮卡

3
我不愿意在不知道我们要处理哪种数据的情况下推荐EFA:引入错误模型(PCA不会提供这种模型)在处理目标潜在变量时,或更通常在试图发现潜在变量时,无疑具有其优势。结构,但PCA(带有警告)主要用于进行尺寸缩小或AFAICT进行大尺寸特征选择。在情况下,EFA是不合适的,而确实存在用于变量选择的复杂方法。我不知道OP的情况,所以我不能多说,但这是一个很好的说明。np
chl 2012年

显然,这是一个困难而细微的问题。既然您比我了解得多,所以我对您的意见很感兴趣。+1,顺便说一句。
gung-恢复莫妮卡

2
两个评论。首先,您提到kPCA是解决您的问题2的一种可能的解决方案。但是,如果本征向量/载荷不可用,那么如何将kPCA用于特征选择?对此还有一个额外的问题,我在那里争论不了。其次,如果您提到LASSO,作为在回归中进行特征选择的首选(?)方法,那么您在第二段之前的第二段可以改进很多。该线程仍然非常受欢迎,并且许多问题与它的重复内容一样被关闭,因此重要的是,您的答案应尽可能出色!
变形虫说恢复莫妮卡

@chl,感谢您的翔实回答。您谈论的是“决定只保留第一个组件”。为什么只有第一个组件?使用一个组件,可以轻松对特征/变量进行排名。您将如何使用多个组件(例如3)来做到这一点?如何在各个组件之间对变量进行排名?我想您可以遍历每个主要组件,并从该主要组件中选择尚未加载的一组最大负载的特征。这些可以再次由数字(j)或归一化系数的阈值选择。你同意吗?
Sother

6

给定一组N个特征,PCA分析将产生(1)方差最大的特征的线性组合(第一PCA分量),(2)在与第一PCA分量正交的子空间中具有最大方差的线性组合等(在组合的系数形成具有单位范数的向量的约束下)具有最大方差的线性组合是否是“良好”功能,实际上取决于您要预测的内容。因此,我想说,作为PCA组件和“良好”功能通常是两个不相关的概念。


(-1)我完全看不出它如何回答原始问题。
变形虫说恢复莫妮卡2014年

-1

您无法根据要素的方差对要素进行排序,因为PCA中使用的方差基本上是多维实体。您只能通过将方差投影到您选择的特定方向(通常是第一个主成分网)来对要素进行排序。换句话说,要素是否具有比其他方差更大的方差取决于您如何选择投影方向。


2
我不明白:每个原始要素确实都有差异,因此可以肯定“ 可以根据其差异对要素进行排序”。而且,我不理解如何通过“将方差投影到您选择的特定方向上”来对它们进行排序。你是什​​么意思?
变形虫说莫妮卡(

实际上,您可以使用方差来对要素进行排序,然后再与PCA有关,后者将所有要素一起对待。
James LI

关于投影:如果您具有n个特征,则方向矢量只是n维空间中的一个单位矢量;相反,您的m个实例向量的投影是实例向量与该单位向量的比例乘积,即为一维向量。而且,此m维向量的方差是数据集方差向所选方向的“投影”。
James LI

1
-1。我认为您答案中的三个句子中的每个句子都是错误的,或者说不清楚,以至于引起误解。我同意您在评论中所写的所有内容,但是我不知道如何将您的答案解释为那样。“您不能根据要素的变化顺序对其进行排序”-?? “只能通过向特定方向的方差投影来对要素进行排序”-?? “特征是否有更多的变化...取决于...”-?? 所有这些都是错误的。
变形虫说恢复莫妮卡

2
我不知道很久以前就曾问过这个问题。我同意其中大多数答复。我的观点是:PCA不适合功能选择。这里没有人想直接说这个。
James LI
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.