【问题标题】: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);
varsorted 和 pcsorted 将按照从高到低的顺序排列。
7 年后编辑:我在重新阅读这个问题时意识到,我的答案实际上并没有回答这个问题。我认为要问的是对主要组件进行了排序。 Don Reba 的回答是对所提出的实际问题的回答。但我无法删除选定的答案。