这个问题在这里已有答案:
我有一个大小为200 * 119的数据集,即我的样本为200,变量/特征为119.我想通过选择那些对分类有重大贡献的特征来使用PCA来优化我的特征集 .
我已经理解了PCA的概念,但我无法实现它 . 我使用 pca 函数找到了 coeff and score 的数据 .
[coeff, score] = pca(data);
coeff矩阵现在的大小为 119x119 .
但是我如何处理这些信息呢?我的目标是找到可以输入分类器的简化数据集 . 我已经阅读了pcares的文档,甚至查看了有关此问题的类似问题 . 但我无法理解 [residuals, reconstructed]=pcares(data, ndim) 将如何帮助我"reduce"我的数据集的大小 . 我如何选择ndim参数?
EDIT
我使用以下代码来减少数据集 .
B=data;
sigma = cov(B);
%// Find eigenvalues and eigenvectors of the covariance matrix
[A,D] = eig(sigma);
vals = diag(D);
%// Sort their eigenvalues
[~,ind] = sort(abs(vals), 'descend');
%// Rearrange eigenvectors
Asort = A(:,ind);
%// Find mean subtracted data
Bm = bsxfun(@minus, B, mean(B,1));
%// Reproject data onto principal components
Bproject = Bm*Asort;
但是,我的Bproject仍然是200 * 119的大小
我不明白 . 请解释 .