如何在matlab中的pcares函数中选择ndim参数并减少数据的维数?

时间:2017-06-22 13:40:48

标签: matlab machine-learning pca dimensionality-reduction

我有一个大小为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

的大小

我不明白这一点。请解释。

0 个答案:

没有答案