首页 > 编程语言 > 详细

PCA算法Python实现

时间:2015-11-03 20:56:39      阅读:465      评论:0      收藏:0      [点我收藏+]
 1 #-*- coding: UTF-8 -*-
 2 from numpy import *
 3 def pca(X,CRate):
 4     #矩阵X每行是一个样本
 5     #对样本矩阵进行中心化样本矩阵
 6     meanValue=mean(X,axis=0)#计算每列均值
 7     X=X-meanValue#每个维度元素减去对应维度均值
 8     #协方差矩阵
 9     C=cov(X,rowvar=0)
10     #特征值,特征向量
11     eigvalue,eigvector=linalg.eig(mat(C))#特征向量和特征值都是降序排列
12     #根据贡献率,来决定取多少个特征向量构成变换矩阵
13     sumEigValue=sum(eigvalue)#所有特征值之和
14     for i in range(eigvalue.size):
15         j=i+1
16         rate=sum(eigvalue[0:j])/sumEigValue
17         if rate>CRate:
18             break
19     #取前j个列向量构成变换矩阵
20     T=eigvector[:,0:j]
21     newX=numpy.dot(X,T)#将X矩阵降维得到newX
22     return newX,T,meanValue#返回降维后矩阵newX,变换矩阵T,每列的均值构成的数组

 

PCA算法Python实现

原文:http://www.cnblogs.com/simon-c/p/4934305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!