2013-04-27 1027 views

回答

23

PCA是找出哪些特征对于最好地描述数据集中的方差很重要的一种方法。它最常用于降低大型数据集的维数,以便在原始数据具有固有高维度(如图像识别)的情况下应用机器学习变得更加实用。

PCA有一些限制,因为它依赖于特征元素之间的线性关系,在开始之前通常不清楚这些关系是什么。由于它也“隐藏”了对数据变化影响不大的特征元素,因此它有时可以根除一个小但显着的差异因素,从而影响机器学习模型的性能。

+1

我认为这里的一个关键是PCA是一种无监督技术,而特征选择通常(但并非总是)指的是受监督的问题。可以使用PCA来描述一个数据集 - 可以通过在几台PC上的绝对高负载显示某些变量是重要的 - 或者在监督模型中抛出主要组件,以使模型更容易运行。但一般来说,PCA本身不是特征选择工具。 – 2015-09-27 19:04:38

5

您可以使用PCA进行功能选择。

主成分分析(PCA)是

的技术“使用正交变换的一组 可能相关的变量的观测转换成一组不相关的 变量称为主成分的值的”。

PCA帮助我们从根本上回答的问题是:这些M参数中的哪一个解释了包含在数据集内的重要变化量 ? PCA基本上有助于应用规则:参数的一小部分(比如说20%)可以解释数据变化的80%或更多 ?

(see here)

但它也有一些缺点:它是对规模敏感,更侧重于数据震级的更高阶。数据规范化不可能永远是解决办法,因为这里说明:

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

还有其他的方法可以做到特征选择:

特征选择算法可以被看作是一个 搜索的组合用于提出新的特征子集的技术,以及对不同的特征子集进行评分的评估测量。最简单的算法是测试每个可能的子集的特征,发现最小化差错率的特征子组。这是该空间的详尽搜索 ,并且除了最小的特征集之外的所有区域都是计算上难以处理的。评估指标的选择很大程度上影响着算法,正是这些评估指标可以区分算法:包装器,过滤器和嵌入式方法的三大类特征选择算法。

(see here)

在某些领域,特征提取可以提出具体的目标:在图像处理,你可能要执行的斑点,边缘或脊检测。

+0

这是如何解决通过PCA选择特征的问题? PCA生成新功能,但它不会立即帮助从原始功能空间中选择功能。答案的第二部分涉及监督问题中的特征选择;目前还不清楚OP是否正在寻找这个。 PCA是一种内在的无监督技术,并且我唯一提及的与我看到的无监督特征选择有关的是主要特征分析:http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011 .pdf我问过如何在R中实现这个http://stackoverflow.com/q/32811659/1840471。 – 2015-09-27 18:58:46

1

只是添加到@Roger Rowland的答案。在监督学习(分类,回归)的背景下,我喜欢将PCA看作是“特征变换器”,而不是特征选择器。

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

简而言之,在预测因变量(例如类标签)时,根本不能保证您的最高主成分是最具信息性的。

This paper是一个有用的来源。 另一个相关的交叉验证链接是here

2

只是添加到上面的很好的答案。不同之处在于,PCA将尝试通过探索数据的一个特征如何用其他特征(线性依赖性)表达来降低维度。 改为选择特征,将目标考虑在内。它会根据他们预测目标值的有用程度对您的输入变量进行排名。这对于单变量特征选择是正确的。 多变量特征选择也可以做一些可以被认为是PCA形式的东西,因为它会丢弃输入中的一些特征。但不要把这个比喻太过分了。