PCA降维—降维后样本维度大小

之前对PCA的原理挺熟悉,但一直没有真正使用过。最近在做降维,实际用到了PCA方法对样本特征进行降维,但在实践过程中遇到了降维后样本维数大小限制问题。

MATLAB自带PCA函数:[coeff, score, latent, tsquared] = pca(X)

其中,X是n*p的,n是样本个数,p是特征维数。
  (1)coeff矩阵是返回的转换矩阵,就是把原始样本转换到新空间中的转换矩阵。
  (2)score是原始样本矩阵在新样本空间中的表示,也就是原始样本乘上转换矩阵,但是还不是直接乘,要减去一个样本的均值。将原始数据转换到新样本空间中的算法是这样实现的:X0 = bsxfun(@minus,X,mean(X,1)); score = X0 * coeff.
  (3)latent是返回的按降序排列的特征值,根据这个你可以手动的选择降维以后的数据要选择前多少列。
  (4)tsquared是X中样本的T平方统计量,PCA在整个空间中计算使用所有主成分来计算tsquared。
  注意:
  (1)当样本个数远小于特征维数的时候,coeff是比较大的,比如你的降维矩阵是100*50000,那么这个转换矩阵的大小是50000*99(并不是50000*50000)。也就是说PCA降维时,降维后特征维数要小于样本个数。
  (2)选择降维后维度的大小:cumsum(latent)./sum(latent),通过这样计算特征值的累计贡献率,一般来说都选择前95%的特征值对应的特征向量。比如矩阵100*50000,如果你计算得到前50个特征值的累计贡献率已经超过99.9%,那么就完全可以只要降维后的数据的前50列。
 

转载于:https://www.cnblogs.com/go-go/p/10635421.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值