9

我一直在研究 R 中的主成分分析的概念。

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

从某种意义上说,最终的问题是,现在怎么办?在计算完成后,我在 PCA 上遇到的大部分阅读都会立即停止,尤其是在机器学习方面。请原谅我的夸张,但我觉得好像每个人都同意该技术很有用,但没有人愿意在使用它之后真正使用它。

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

我尊重主成分是您开始使用的变量的线性组合。那么,这种转换后的数据如何在监督机器学习中发挥作用呢?有人怎么可能使用 PCA 作为一种降低数据集维数的方法,然后将这些组件与监督学习器一起使用,比如 SVM?

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

如果您有时间和财力,请介入并纠正我。提前致谢。

4

2 回答 2

9

老问题,但我认为它没有得到令人满意的回答(我只是通过谷歌自己登陆这里)。我发现自己和你一样,不得不自己寻找答案。

PCA 的目标是在标准正交基 W 中表示您的数据 X;您的数据在这个新基础上的坐标是 Z,如下所示:

X = ZW'

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

XW = Z

现在为了降低维度,让我们选择一些分量 k < p。假设我们在 W 中的基向量从大到小排序(即,对应于最大特征值的特征向量在前等),这相当于简单地保留 W 的前 k 列。

XW = Z

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

Y=f(Z)

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

XW = Z

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

Y=f(Z)

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

于 2016-11-19T17:43:22.797 回答
3

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

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

  • 在执行线性变换时,您隐含地假设所有组件都以等效单位表示。
  • 除了方差之外,PCA 对您的数据结构视而不见。很可能会发生数据沿低方差维度拆分的情况。在这种情况下,分类器不会从转换后的数据中学习。
于 2013-11-28T04:49:37.987 回答