【问题标题】:Feature Extraction through PCA通过 PCA 进行特征提取
【发布时间】:2011-08-15 16:56:51
【问题描述】:

我正在尝试从包含 63 个样本的 2000 个特征的数据中选择一个特征子集。现在我知道如何在 MATLAB 中进行 PCA。我使用了“pcacov”,它也返回了特征向量和特征值。但是,我不知道如何选择我想要的功能。我的意思是如果没有标记功能,我该如何选择我的功能?还是会按相同的顺序退回?

【问题讨论】:

    标签: matlab statistics artificial-intelligence machine-learning pca


    【解决方案1】:

    PCA 不会告诉您哪些特征最重要,但哪些特征组合保持最大差异。

    PCA 所做的是旋转数据集,使其在第一个维度上具有最大的方差,在第二个维度上具有最大的方差,依此类推。因此,当您将特征向量乘以前 N 个特征向量时,您所做的是旋转集合并保留前 N 个维度,以将您的向量转换为保留大部分方差的低维表示。

    【讨论】:

      【解决方案2】:

      如何选择我的功能?

      如果你这样称呼它

      [pc,variances,explained] = pcacov(covx)
      

      那么主成分是第一个返回参数中的向量,其方差与第二个返回参数中的方差相同。它们是对应的,并从最重要到最不重要排序。

      或者它们会以相同的顺序被退回?

      如果函数帮助说是这样,你可以假设,否则假设是不安全的,你可以做类似的事情。

      [varsorted,varsortedinds] = sort(variances,'descend');
      pcsorted = pc(:,varsortedinds);
      

      varsortedpcsorted 将按照从高到低的顺序排列。

      7 年后编辑:我在重新阅读这个问题时意识到,我的答案实际上并没有回答这个问题。我认为要问的是对主要组件进行了排序。 Don Reba 的回答是对所提出的实际问题的回答。但我无法删除选定的答案。

      【讨论】:

      • 这就是我想要的答案 :) 非常感谢!
      猜你喜欢
      • 2019-08-22
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 2019-06-07
      • 2020-08-06
      • 2012-10-19
      相关资源
      最近更新 更多