gpt4 book ai didi

algorithm - 主成分分析 m×n 矩阵实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:47 25 4
gpt4 key购买 nike

有谁知道如何在 matlab 中对 m×n 矩阵进行主成分分析 (PCA) 以进行归一化?

最佳答案

假设每一列都是一个样本(也就是说,你有 n 个样本,每个维度 m),并且它存储在矩阵 A 你首先必须减去列意味着:

      Amm = bsxfun(@minus,A,mean(A,2));

那么你想对 1/size(Amm,2)*Amm*Amm' 进行特征值分解(你可以使用 1/(size(Amm,2)-1 ) 作为一个比例因子,如果你想将插值作为无偏协方差矩阵):

      [v,d] = eig(1/size(Amm,2)*Amm*Amm');

v 的列将成为您的 PCA 向量。 d 的条目将成为您相应的“方差”。

但是,如果您的 m 很大,那么这不是最好的方法,因为存储 Amm*Amm' 是不切实际的。你想改为计算:

      [u,s,v] = svd(1/sqrt(size(Amm,2))*Amm,'econ');

这次 u 包含您的 PCA 向量。 s 的条目通过 sqrtd 的条目相关。

注意:如果 m 很大,还有另一种方法,即计算 eig(1/size(Amm,2)*Amm
'*Amm);
(注意与上面相比转置的切换)并做了一些小技巧,但这是一个更长的解释,所以我不会深入。

关于algorithm - 主成分分析 m×n 矩阵实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7830027/

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