我有一个大小为200 * 119的数据集,即我的样本为200,变量/特征为119.我想通过仅选择那些对分类有重大贡献的特征来使用PCA来优化我的特征集。
我已理解PCA的概念,但无法实现它。我使用coeff and score
函数找到了pca
我的数据。
[coeff, score] = pca(data);
现在,coeff矩阵的大小为119x119
。
但我该如何处理这些信息呢?我的目标是找到可以输入分类器的简化数据集。我已经阅读了pcares的文档,甚至查看了有关此问题的类似问题。但我无法理解[residuals, reconstructed]=pcares(data, ndim)
将如何帮助我减少"我的数据集的大小。我该如何选择ndim参数?
修改
我使用以下代码来减少数据集。
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
的大小我不明白这一点。请解释。