如何在受监督的机器学习分类问题中使用主成分分析?

时间:2013-11-28 02:37:02

标签: machine-learning pca supervised-learning principal-components

我一直在研究R。

中的主成分分析概念

我很乐意将PCA应用于(例如标记的)数据集,并最终从我的矩阵中提取出最有趣的前几个主要成分作为数值变量。

从某种意义上说,最终的问题是什么?在计算完成后,我在PCA上遇到的大部分读数都会立即停止,特别是在机器学习方面。请原谅我的夸张,但我觉得好像每个人都认为这种技术很有用,但没有人愿意在他们这么做之后真正使用它。

更具体地说,这是我真正的问题:

我认为主要成分是您开始使用的变量的线性组合。那么,这种转换后的数据如何在监督机器学习中发挥作用?有人如何使用PCA作为减少数据集维数的方法,然后,将这些组件与受监督的学习者(例如SVM)一起使用?

我对我们的标签发生了什么感到困惑。一旦我们进入了本征空间,那就太好了。但是,如果这种转变打破了我们的分类概念,我看不出任何继续推进机器学习的方法(除非有一些“是”或“否”的线性组合我没有遇到过!)

如果你有时间和资金,请介入并指导我。提前谢谢。

2 个答案:

答案 0 :(得分:7)

老问题,但我认为它没有得到令人满意的回答(我刚刚通过谷歌来到这里)。我发现自己穿着同样的鞋子,不得不自己找回答案。

PCA的目标是以标准正常基准W表示您的数据X;新基础中数据的坐标为Z,如下所示:

X = ZW'

由于正交性,我们可以简单地通过转置它来反转W并写:

XW = Z

现在为了减少维数,我们选择一些组件k<页。假设我们在W中的基矢量从最大到最小排序(即,对应于最大特征值的特征向量是第一个等),这相当于简单地保持W的前k列。

XW = Z

现在我们有训练数据X的k维表示。现在您使用Z中的新功能运行一些监督分类器。

Y=f(Z)

关键是要意识到W在某种意义上是从我们的p特征空间到k特征空间的规范转换(或者至少是我们使用我们的训练数据可以找到的最佳转换)。因此,我们可以使用相同的W转换命中我们的 test 数据,从而产生一组k维测试特征:

XW = Z

我们现在可以使用在训练数据的k维表示上训练的相同分类器来预测我们的测试数据的k维表示:

Y=f(Z)

完成整个程序的重点是因为你可能有数以千计的功能,但(1)并非所有功能都会产生有意义的信号。(2)你的监督学习方法可能过于复杂而无法训练在完整的功能集上(要么花费太长时间,要么计算机没有足够的内存来处理计算)。 PCA允许您显着减少表示数据所需的功能数量,而不会消除真正增加价值的数据功能。

答案 1 :(得分:3)

在对部分数据使用PCA计算转换矩阵后,将该矩阵应用于每个数据点,然后再将其提交给分类器。

当数据的内在维度远小于组件数量并且在分类期间获得的性能增益值得损失准确性和PCA成本时,这非常有用。另外,请记住PCA的局限性:

  • 在执行线性变换时,您隐式假设所有组件都以等效单位表示。
  • 除了差异之外,PCA对数据​​结构视而不见。很可能会发生数据沿低方差维度分裂的情况。在这种情况下,分类器不会从转换后的数据中学习。