如何在 MATLAB 中使用 pca 函数来选择有效的特征? [复制]

Posted

技术标签:

【中文标题】如何在 MATLAB 中使用 pca 函数来选择有效的特征? [复制]【英文标题】:How to use pca function in MATLAB to select effective features? [duplicate] 【发布时间】:2019-09-17 10:48:15 【问题描述】:

我是 pca 的新手,经过一些研究,我发现使用 pca 算法我们可以选择最有效的特征。

我只是想使用 pca 函数(在 MATLAB 中)选择最佳特征,以将数据分类到标签为“健康”和“不健康”(监督分类)的两个类别。

我的问题是我应该在这个函数上设置一些参数来做到这一点还是我应该自己编写代码而pca函数没有这个兼容性?。

例如,我有一个包含 200 行和 5 个特征的数据集:

1-Age 
2-Weight
3-Tall
4-Skin Color
5-Eye color 

并想使用“pca”函数来寻找有效的特征(例如):

1-Age
3-Tall 
5-Eye Color

分类数据(2 类标签为“健康”和“不健康”)。

【问题讨论】:

注意,我知道我作为可能重复链接的问题是指无监督而非监督分类,但我相信答案适用于两者。 【参考方案1】:
% remove labels
features=AllMyData(:,1:end-1);

% get dimensions
[m,n] = size(features);

%# Remove the mean
features = features - repmat(mean(features,2), 1, size(features,2));

%# Compute the SVD
[U,S,V] = svd(features);

%# Compute the number of eigenvectors representing
%#  the 95% of the variation
coverage = cumsum(diag(S));
coverage = coverage ./ max(coverage);
[~, nEig] = max(coverage > 0.95);

%# Compute the norms of each vector in the new space
norms = zeros(n,1);
for i = 1:n
  norms(i) = norm(V(i,1:nEig))^2;
end

[~, idx] = sort(norms);
idx(1:n)'

【讨论】:

以上是关于如何在 MATLAB 中使用 pca 函数来选择有效的特征? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在matlab中使用PCA减少矩阵维数? [复制]

Matlab - 多维数据的PCA分析与重构

如何使用matlab在K-means算法后绘制具有不同颜色簇的PCA散点图?

在matlab中,关于PCA降维运算,求得特征向量矩阵之后,又要如何才能得到我需要的投影矩阵呢?

基于PCA手写数字识别matlab 源码

基于PCA手写数字识别matlab 源码