选择显示PCA差异最大的组件

Stu*_*PhD 5 matlab classification machine-learning pca dimensionality-reduction

我有一个庞大的数据集(32000*2500),我需要进行培训.这对于我的分类器来说似乎太过分了,所以我决定对维数降低进行一些阅读,特别是对PCA进行阅读.

根据我的理解,PCA选择当前数据并在另一个(x,y)域/规模上重新创建它们.这些新坐标并不意味着什么,但数据被重新排列以给出一个轴最大变化.在这些新系数之后,我可以放弃cooeff具有最小变化.

现在我试图在MatLab中实现它,并且在提供的输出方面遇到了麻烦.MatLab始终将行视为观察,将列视为变量.所以我的pca函数是我的大小矩阵(32000*2500).这将在大小的输出矩阵中返回PCA系数2500*2500.

pca的帮助说明:

每列coeff包含一个主成分的系数,列按成分方差的降序排列.

在此输出中,哪个维度是我的数据的观察?我的意思是,如果我必须将它提供给分类器,那些行coeff代表我的数据观察还是现在是列的coeff

如何删除变化最小的系数?

Ami*_*ory 5

(免责声明:自从我从matlab切换到scipy以来已经很长时间了,但原则是相同的.)

如果您使用该svd功能

[U,S,V] = svd(X)
Run Code Online (Sandbox Code Playgroud)

然后,以减少的维度Xk,你会在第一乘kV.在matlab中,我猜是的

X * V(:, 1: k);
Run Code Online (Sandbox Code Playgroud)

有关该理论,请参阅统计学习要素.