实现主成分基本步骤:

  1. 数据中心化,减去均值
  2. 中心化后的数据求协方差阵,并对协方差阵求特征值与特征向量,以此计算主成分
  3. 对特征值进行排序,确定各主成分贡献率,并按大小排列
  4. 依据所需累积主成分贡献率p,进行截取,选取前m个主成分,使得前m个主成分的,累积贡献率大于p
所用包:numpy
#-*-coding:GBK-*-
'''
author:zwg
created in 2016-10-04 by zwg
'''
#定义pca函数
import numpy
def my_pca(A):me=numpy.mean(A,axis=0)A1=A-meA1_cov=numpy.cov(A1.T)eigval,eig=numpy.linalg.eig(A1_cov)sort=numpy.argsort(eigval)sort=sort[::-1]eigval_sort=eigval[sort]eig_sort=eig[:,sort]me=me[sort]m=numpy.dot(A1,eig_sort)+mepro=eigval_sort/sum(eigval)return m,pro#返回主成分和各主成分的贡献率
#截取贡献率大于rate的前几个主成分
def cut(m,p,rate):if rate<=0 or rate>1:print 'error'returnelse:p1=p[p>rate]n=len(p1)m1=m[:,0:n-1]return m1,p1if __name__=='__main__':A=numpy.random.rand(10,2)m,p=my_pca(A)rate=0.5m1,p1=cut(m,p,rate)print p1#p为贡献百分比,m为主成分

代码中用了两列0-1均匀分布的数据作为原始数据,截取累积贡献率大于0.5的主成分,得到一个主成分,其贡献率为0.84902435。(注意,使用的数据需以列为单位,每一列为一个属性)

Python_主成分分析相关推荐

  1. 主成分分析(PCA)及其可视化——matlab

    本文所用为matlab2016a matlab安装:待更新 matlab基础知识:待更新 如果本文内容已学会,可以看看python的哦 主成分分析(PCA)及其可视化--python_菜菜笨小孩的博客 ...

  2. 基于三维点云数据的主成分分析方法(PCA)的python实现

    主成分分析(PCA)获取三维点云的坐标轴方向和点云法向量 # 实现PCA分析和法向量计算,并加载数据集中的文件进行验证import open3d as o3d # import os import n ...

  3. 机器学习中的数学基础:(3)主成分分析(PCA)及其应用

    主成分分析主要用于数据的降维?什么是降维? 比如说有如下的房价数据:    这种一维数据可以直接放在实数轴上: 房价样本数据用X表示,则以上数据的均值为: 以均值为原点: 将上述表格以均值,做&quo ...

  4. 机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)

    目录 一.基础理论 1.降维定义 2.降维对象及目标 二.低方差过滤 1.基础理论 2.API 过程: 1.读取待处理数据集 2.创建低方差过滤转换器(设置过滤阈值) 3.低方差过滤处理 代码 三.相 ...

  5. 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)

    Note 7 - 核主成分分析(Kernel Principal Component Analysis) 核主成分分析 Note 7 - 核主成分分析(Kernel Principal Compone ...

  6. 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例

    主成分分析及其现代解释 4. 主成分分析及其现代解释 Principal Component Analysis and Its Modern Interpretations 4.1 几何学解释 The ...

  7. 主成分分析(PCA) C++ 实现

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

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

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

  9. OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用

    OpenCV3.3中给出了主成分分析(Principal Components Analysis, PCA)的实现,即cv::PCA类,类的声明在include/opencv2/core.hpp文件中 ...

最新文章

  1. 蜘蛛搜索引擎_各大搜索引擎的蜘蛛特点
  2. 冷热分离和直接使用大数据库_中台有“数”:大数据技术为苏宁818保驾护航
  3. eclipse下安装PyDev不显示问题
  4. java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件...
  5. 【SPFA】重建道路(jzoj 1212)
  6. 1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?
  7. 北师大计算机试题五答案,北京师范大学计算机软件及理论2022考研招生分析、参考书、真题等复习指导解析...
  8. Java异常处理课后作业
  9. odbc数据源的配置
  10. 数据科学包4-pandas核心数据结构
  11. L1-027 出租 (20 分)—团体程序设计天梯赛
  12. VB.NET自动操作其他程序(4)--读取、设置其他软件listview控件的内容
  13. 锐文网络安全网闸卡各种应用场景
  14. 【高并发】秒杀系统设计思路
  15. 真核有参转录组测序标准分析
  16. GC回收算法--当女友跟你提分手!
  17. S32K116调试记录(1)SWD接口调试
  18. 虚幻4地形怎么增加层_虚幻周报20200602 | 我等的东西还没来……
  19. 春夏秋冬又一春之Redis持久化
  20. 使用Lucene开发简单的站内新闻搜索引擎(环境的搭建)

热门文章

  1. 3 PP配置-一般设置-检查计量单位
  2. linux jobs继续运行,Linux jobs等前后台运行命令详解
  3. 8.0ble设备 android_蓝牙自动连入附近设备?海凌科解答不同蓝牙区别
  4. cubietruck 编译 linux,Cubietruck---1. ct的使用说明烧写及源码的编译
  5. 项目收获与体会_格创丨项目开发部、ACM训练队、信息运营部
  6. 数学分析闭区间套定理_【缠论基础】区间套
  7. mariadb mysql同步_MySQL(Mariadb)主从同步基础
  8. JavaScript读写.txt文档 - 方法篇
  9. phpcms顶部导航代码、高亮显示设置
  10. vs linux版本,VSCodium:100% 开源的 VS Code | Linux 中国