摘自《机器学习实践》第13章:

 1 from numpy import *
 2 import matplotlib
 3 import matplotlib.pyplot as plt
 4
 5 def loadDataSet(fileName, delim='\t'):
 6     fr = open(fileName)
 7     stringArr = [line.strip().split(delim) for line in fr.readlines()]
 8     datArr = [map(float, line) for line in stringArr]
 9     return mat(datArr)
10
11 def pca(dataMat, topNfeat = 999999):
12     meanVals = mean(dataMat, axis = 0)
13     meanRemoved = dataMat - meanVals
14     covMat = cov(meanRemoved, rowvar = 0)
15     eigVals, eigVects = linalg.eig(mat(covMat))
16     eigValInd = argsort(eigVals)
17     eigValInd = eigValInd[: - (topNfeat + 1): -1]
18     redEigVects = eigVects[:, eigValInd]
19     lowDDataMat = meanRemoved * redEigVects
20     reconMat = (lowDDataMat * redEigVects.T) + meanVals
21     return lowDDataMat, reconMat
22
23 if __name__ == "__main__":
24     dataMat = loadDataSet('testSet.txt')
25     lowDMat, reconMat = pca(dataMat, 1)
26     fig = plt.figure()
27     ax = fig.add_subplot(111)
28     ax.scatter(dataMat[:, 0].flatten().A[0], dataMat[:, 1].flatten().A[0], marker='^', s = 90)
29     ax.scatter(reconMat[:, 0].flatten().A[0], reconMat[:, 1].flatten().A[0], marker='o', s = 50, c='red')
30     plt.show()

输入数据格式: 文本文件,每行是两个以TAB键分隔的浮点数。

附运行结果:

转载于:https://www.cnblogs.com/mush0m/p/3694959.html

主成分分析(PCA)实现代码相关推荐

  1. 主成分分析(PCA)Python代码实现

    主成分分析(Principal Components Analysis, PCA)简介可以参考: http://blog.csdn.net/fengbingchun/article/details/7 ...

  2. 主成分分析PCA+C代码

    主成分分析(PCA)的中心思想是:将数据降维,以排除信息中重叠的部分:它将原变量数据进行变换,使少数几个新变量是原变量的线性组合,同时,这些变量要尽可能多的表征原变量的数据结构而不丢失信息. 主成分分 ...

  3. 主成分分析(PCA)-Python代码

    主成分分析是利用降维的思想,在损失很少信息的前提下把多个指标转化为几个综合指标的多元统计方法. 算法的具体步骤如下: 1)对向量X进行去中心化. 2)计算向量X的协方差矩阵,自由度可以选择0或者1. ...

  4. 这次终于理解了PCA主成分分析(附代码)

    在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或者有一 ...

  5. 223.主成分分析PCA

    主成分分析 PCA 本节作者:刘华,中国科学技术大学 版本1.0.3,更新日期:2020年6月18日 什么是PCA(Principal Component Analysis) 相关背景 在许多领域的研 ...

  6. 机器学习-降维之主成分分析PCA算法原理及实战

    主成分分析 前言 近年来,随着互联网和信息行业的发展,数据已经渗透到各行各业,成为重要的生产因素如数据记录和属性规模的急剧增长.社会已经进入大数据时代,数据越多越好似乎已经成为公理.然而,数据量并不是 ...

  7. 主成分分析(PCA)原理详解_转载

    一.PCA简介 1. 相关背景 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上 ...

  8. Python 主成分分析PCA

    Python 主成分分析PCA 主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维.去噪的有效方法,PCA的思想是将n维特征映射到k维上(k<n),这k维特征称为主元,是旧特征的线性 ...

  9. 送书 | 主成分分析PCA

    主成分分析 PCA 本节作者:刘华,中国科学技术大学 版本1.0.3,更新日期:2020年6月18日 什么是PCA(Principal Component Analysis) 相关背景 在许多领域的研 ...

  10. 数学建模-14.主成分分析PCA

    主成分分析(PCA) 一种降维算法,能将多个指标转换为少数几个主成分 这些主成分是原始变量的线性组合,且彼此互不相关.其能反映出原始数据的大部分信息. 一般而言,当研究问题涉及到多变量且变量之间存在很 ...

最新文章

  1. 转换图像分辨率c++代码_哈工大等提出轻量级盲超分辨模型LESRCNN,代码已开源...
  2. oracle开发数据库试题,Oracle_开发数据库试题.doc
  3. LA2965侏罗纪(异或和为0的最大数字个数)
  4. Java学习日记----反射
  5. 天翼云从业认证(2.3)云计算的价值和核心技术。
  6. 《Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study》
  7. Mobile RDA 同步数据库的类--转
  8. SDK 和 API 有什么区别
  9. SAP Netweaver的负载均衡消息服务器 vs CloudFoundry的App Router
  10. C++ STL string与算法
  11. chrome版本太旧 无法更新
  12. 使用c++实现一个FTP客户端(一)
  13. java applet 按钮_Java Applet语法简介
  14. css集合——好看的按钮样式+阴影+渐变
  15. zigbee模块和433无线模块的区别
  16. matplotlib绘制树形图之基本配置——万能模板案例
  17. 怎样找计算机物理地址,怎么查询电脑物理地址
  18. 如果因为溢出导致了结果为负,那么逻辑上真正的结果必然为正
  19. 中山大学农学院袁超磊课题组博士后招聘
  20. 肯定得想办法牵线搭桥

热门文章

  1. C++ 冒泡算法 练习
  2. PHPObject v1.51(Flash Remoting for PHP developers)
  3. android 丢包率测试工具,android的ping的实现丢包率的获取
  4. 读写锁优先级的问题解决了
  5. I - 数塔(动态规划)数塔问题
  6. Spark 堆外内存
  7. hadoop文件的序列化
  8. 合肥师范学院2020年专业计算机是多少分,合肥师范学院2020年安徽省一本、二本各专业录取分数统计...
  9. html 正则表达式密码判断,JS利用正则表达式实现简单的密码强弱判断实例
  10. linux bootloader启动流程,技术|Linux 的启动流程详解