【问题标题】:How do I use principal component analysis in supervised machine learning classification problems?如何在监督机器学习分类问题中使用主成分分析?
【发布时间】:2013-12-13 22:29:21
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 做有监督的 PCA :) ?

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


【解决方案1】:

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

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

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

现在为了降低维度,让我们选择一些分量 k

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 所以,在我将该矩阵应用于我的每个数据点(在我的训练集中)之后,我将它们提交给分类器...保留与这些数据点相关联的标签?
    • 没错。 PCA 转换只是围绕原点旋转您的点。这不会影响他们的标签。
    猜你喜欢
    • 2021-03-04
    • 2019-06-04
    • 2018-09-25
    • 2015-12-09
    • 2017-06-29
    • 2020-06-28
    • 2016-08-24
    • 2018-09-07
    • 2013-11-07
    相关资源
    最近更新 更多