python实现PCA(主成分分析)降维
来源:互联网 发布:网络歌手名单女 编辑:程序博客网 时间:2024/06/08 02:09
PCA复杂的原理在这就不说了,可以去网上看看相关资料,说的都很好,在这我主要说一下实现的过程。
PCA计算过程:
第一步:求均值。求平均值,然后对于所有的样例,都减去对应的均值
第二步:求特征协方差矩阵
第三步:求协方差的特征值和特征向量
第四步:将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵.
第五步:将样本点投影到选取的特征向量上。 假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k).那么投影后的数据FinalData为: FinalData(m*k) = DataAdjust(m*n) * EigenVectors(n*k)。
python实现代码:
def pca(self, dataMat, K=65535): # dataMat是原始数据,一个矩阵,K是要降到的维数 meanVals = mean(dataMat, axis=0) # 第一步:求均值 meanRemoved = dataMat - meanVals # 减去对应的均值 covMat = cov(meanRemoved, rowvar=0) # 第二步,求特征协方差矩阵 eigVals, eigVects = linalg.eig(mat(covMat)) # 第三步,求特征值和特征向量 eigValInd = argsort(eigVals) # 第四步,将特征值按照从小到大的顺序排序 eigValInd = eigValInd[: -(K+1): -1] # 选择其中最大的K个 redEigVects = eigVects[:, eigValInd] # 然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵. lowDDataMat = meanRemoved * redEigVects # 第五步,将样本点投影到选取的特征向量上,得到降维后的数据 reconMat = (lowDDataMat * redEigVects.T) + meanVals # 还原数据 contribution = self.calc_single_contribute(eigVals, eigValInd) # 计算单维贡献度,总贡献度为其和 return lowDDataMat, contribution
2 0
- python实现PCA(主成分分析)降维
- PCA主成分分析Python实现
- PCA主成分分析Python实现
- PCA主成分分析Python实现
- 【机器学习算法-python实现】PCA 主成分分析、降维
- python版PCA(主成分分析)
- Python 主成分分析PCA
- Python 主成分分析PCA
- PCA (主成分分析)matlab实现
- OpenCV实现主成分分析(PCA)
- PCA主成分分析(降维)
- 降维--主成分分析(PCA)
- 主成分分析PCA简介及其python实现
- 降维:主成分分析(PCA)
- 降维-主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 主成分分析(PCA)
- 深入理解Java注解——注解之基本概念
- javascript中的闭包分析
- 深入理解Java注解——元注解及自定义注解
- 三言两语说shader(四)渲染流水线及相关
- 浅谈2—SAT问题
- python实现PCA(主成分分析)降维
- spring @Qualifier注解使用
- 深入理解Java注解——注解处理器
- android sdk manager更新代理配置
- 探索OTN上的TimesTen Hands-on Lab虚拟机
- 古老的邮件编码
- Eclipse编写ExtJS卡死问题 eclise js验证取消
- win7下Python3开发环境设置
- perl 爬虫两个技巧