PCA相关

本文介绍如何使用MATLAB的princomp函数进行主成分分析(PCA),实现数据降维。通过实例展示如何计算主成分得分、特征值及累积贡献率,并决定保留的主成分数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客

matlab自带的实现方式

[COEFF,SCORE,latent,tsquare] = princomp(X)

在n行p列的数据集X上做主成分分析。X的每行表示一个样本的观测值,每一列表示特征变量。COEFF是一个p行p列的矩阵,每一列包含一个主成分的系数,列是按主成分变量递减顺序排列。(COEFF是X矩阵所对应的协方差阵V的所有特征向量组成的矩阵,即变换矩阵或称投影矩阵,COEFF每列对应一个特征值的特征向量,列的排列顺序是按特征值的大小递减排序)

返回的SCORE是对主分的打分,也就是说原X矩阵在主成分空间的表示。SCORE每行对应样本观测值,每列对应一个主成份(变量),它的行和列的数目和X的行列数目相同。

我们要的是由函数[pc,score,latent,tsquare] = princomp(ingredients)它所产生的pc和latent。由latent可以算出降维后的空间所能表示原空间的程度,只要这个累积的值大于95%就行了。

cumsum(latent)./sum(latent)  

ans = 0.86597

        0.97886  

              0.9996  

              1              

%由以上ans值可以看出前两个主成分就能表示原空间的97.886%,所以取pc中的前两列可

%做主成分变换矩阵tranMatrix = pc(:,1:2)。则从原来的4维空间降到2维空间。
%对任意一个原空间样本,例如a=(7 ,26 ,6 ,60)变到低维空间的表达式为a1 = a*tranMatrix。
%(当然你也可以取pc中的前三列,由原来的4维空间变到3维空间)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值