gpt4 book ai didi

matlab - 选择在 PCA 中显示最大方差的组件

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:17 24 4
gpt4 key购买 nike

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

根据我的理解,PCA 选择当前数据并在另一个 (x,y) 域/尺度上重新绘制它们。这些新坐标没有任何意义,只是重新排列数据以给出一个轴的最大变化。在这些新系数之后,我可以删除具有最小变化的 cooeff

现在我正尝试在 MatLab 中实现它,但在处理提供的输出时遇到了问题。 MatLab 始终将行视为观察值,将列视为变量。所以我对 pca 函数的输入将是我的大小矩阵 (32000*2500)。这将在大小为 2500*2500 的输出矩阵中返回 PCA 系数。

pca 状态的帮助:

Each column of coeff contains coefficients for one principal component, and the columns are in descending order of component variance.

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

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

最佳答案

(免责声明:从matlab转scipy好久了,但是原理是一样的。)

如果您使用 svd function

[U,S,V] = svd(X)

然后对X进行降维至 k ,你会乘以第一个 k V 列.在 matlab 中,我猜那是

X * V(:, 1: k);

引用Elements of Statistical Learning理论。

关于matlab - 选择在 PCA 中显示最大方差的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com