PCA (主成分分析)和特征选择有什么不同?

22
在机器学习中,主成分分析(PCA)和特征选择有什么区别?PCA是一种特征选择方法吗?
4个回答

31

主成分分析(PCA)是一种寻找数据集中最佳描述方差的特征的方法。它通常用于减少大型数据集的维数,以便在原始数据具有高维度(例如图像识别)的情况下更容易应用机器学习。

然而,PCA有其局限性,因为它依赖于特征元素之间的线性关系,并且在开始之前通常不清楚这些关系。由于PCA“隐藏”了对数据方差贡献较小的特征元素,有时会消除一个小但重要的区分因素,从而影响机器学习模型的性能。


3
关键点在于主成分分析是一种无监督技术,而特征选择通常是指监督问题(但不总是如此)。可以使用PCA描述一个数据集--通过多个主成分的高绝对载荷可能揭示出某些重要变量--或将主成分应用于监督模型以使其更容易运行。尽管如此,通常情况下主成分分析并非专门用于特征选择的工具。 - Max Ghenis

12

仅作为以上非常好的答案的补充。不同之处在于,PCA将通过探索数据中一项功能如何用其他功能(线性相关性)表达来尝试减少维度。 相反,特征选择考虑了目标。它将按照输入变量对预测目标值的有用程度对其进行排名。这对于单变量特征选择是正确的。 多变量特征选择也可以做一些可以视为PCA形式的事情,因为它会丢弃一些输入中的特征。但是不要把这个比喻过分解读。


10

您可以使用PCA进行特征选择。

主成分分析(PCA)是一种技术,

“使用正交变换将可能相关的变量观测集转换为未相关的值集合,称为主成分。”

PCA帮助我们根本上回答的问题是:这M个参数中哪些解释了数据集中包含的大量变化? PCA基本上帮助应用了80-20法则:小的参数子集(例如20%)是否能够解释数据中80%或更多的变化?

(在此处查看)

但它也有一些缺点:它对比例尺度敏感,并且会给具有更高数量级的数据赋予更多的权重。数据归一化并不总是解决方案,如此处所述:

http://www.simafore.com/blog/bid/105347/Feature-selection-with-mutual-information-Part-2-PCA-disadvantages

有其他方法可以进行特征选择:

特征选择算法可以被看作是提出新特征子集的搜索技术与对不同特征子集进行评分的评估度量的组合。最简单的算法是测试每个可能的特征子集,找到使误差率最小化的那个。这是对空间的穷举搜索,对于特征集较大的情况下计算复杂度难以承受。评估指标的选择会极大地影响算法,正是这些评估指标区分了特征选择算法的三个主要类别:包装器、过滤器和嵌入式方法。

(在此处查看)

在某些领域中,特征提取可以建议特定的目标:在图像处理中,您可能希望执行斑点、边缘或脊线检测。


1
这如何解决通过PCA进行特征选择的问题?PCA生成新特征,它并不能立即从原始特征空间中帮助选择特征。你回答的第二部分涉及监督问题中的特征选择;不清楚OP是否正在寻找这个。PCA是一种固有的无监督技术,我看到与其相关的唯一无监督特征选择提到的是主要特征分析:http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011.pdf 我在http://stackoverflow.com/q/32811659/1840471上询问了如何在R中实现此操作。 - Max Ghenis

5

仅补充一下@Roger Rowland的回答。在监督学习(分类,回归)的情况下,我喜欢将PCA视为“特征转换器”而不是特征选择器。

PCA基于提取数据显示最高变异性的轴。虽然它在新的基础上“展开”数据,并且在无监督学习中可以提供很大的帮助,但不能保证新的轴与监督问题中的区分特征一致。

更简单地说,不能保证您的前几个主成分在预测因变量(例如类标签)方面最具信息量。

这篇论文是一个有用的来源。 另一个相关的交叉验证链接在这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接