我是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个类别)。
答案 0 :(得分: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)'