如何使用MATLAB中的pca函数得到select个有效特征?
How to use pca function in MATLAB to select effective features?
我是 pca 的新手,经过一些研究我发现使用 pca 算法我们可以 select 最有效的特征。
我只是想使用 pca 函数(在 MATLAB 中)select 最佳特征将数据分类为两个 类 标签 "health" 和 "unhealthy"(监督分类).
我的问题是我应该在这个函数上设置一些参数来做还是我应该自己写代码而pca函数没有这个兼容性?
例如,我有一个包含 200 行和 5 个特征的数据集:
1-Age
2-Weight
3-Tall
4-Skin Color
5-Eye color
并想使用"pca"函数寻找有效特征(作为例子):
1-Age
3-Tall
5-Eye Color
分类数据(2 类 带有标签 "health" 和 "unhealthy")。
% 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)'
我是 pca 的新手,经过一些研究我发现使用 pca 算法我们可以 select 最有效的特征。
我只是想使用 pca 函数(在 MATLAB 中)select 最佳特征将数据分类为两个 类 标签 "health" 和 "unhealthy"(监督分类).
我的问题是我应该在这个函数上设置一些参数来做还是我应该自己写代码而pca函数没有这个兼容性?
例如,我有一个包含 200 行和 5 个特征的数据集:
1-Age
2-Weight
3-Tall
4-Skin Color
5-Eye color
并想使用"pca"函数寻找有效特征(作为例子):
1-Age
3-Tall
5-Eye Color
分类数据(2 类 带有标签 "health" 和 "unhealthy")。
% 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)'