参考链接: Python 主成分分析(PCA)

原文请参考:http://www.cnblogs.com/chenbjin/p/4200790.html点击打开链接

主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维、去噪的有效方法,PCA的思想是将n维特征映射到k维上(k<n),这k维特征称为主元,是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的k个特征互不相关。

相关知识

1.协方差 Covariance

  变量X和变量Y的协方差公式如下,协方差是描述不同变量之间的相关关系,协方差>0时说明 X和 Y是正相关关系,协方差<0时 X和Y是负相关关系,协方差为0时 X和Y相互独立。

  

  协方差的计算是针对两维的,对于n维的数据集,可以计算C(n,2)种协方差。 n维数据的协方差矩阵的定义如下:          Dim(x)表示第x维。

对于三维(x,y,z),其协方差矩阵如下,可看出协方差矩阵是一个对称矩阵(symmetrical),其对角线元素为每一维的方差:    

2.特征向量和特征值 

  若,则称是A的特征值,X是对应的特征向量。可以这样理解:矩阵A作用在它的特征向量X上,仅仅使得X的长度发生了变化,缩放比例就是相应的特征值。特征向量只能在方阵中找到,而且并不是所有的方阵都有特征向量,并且如果一个n*n的方阵有特征向量,那么就有n个特征向量。一个矩阵的所有特征向量是正交的,即特征向量之间的点积为0,一般情况下,会将特征向量归一化,即向量长度为1。

3.PCA过程

  第一步,获取数据,下图中的Data为原始数据,一共有两个维度,可看出二维平面上的点。

  

  下图是Data在二维坐标平面上的散点图:

  

  第二步,减去平均值,对于Data中的每一维数据分别求平均值,并减去平均值,得到DataAdjust数据。

  第三步,计算DataAdjust的协方差矩阵

  

  第四步,计算协方差矩阵的特征向量和特征值,选取特征向量

     

  特征值0.490833989对应的特征向量是(-0.735178656, 0.677873399),这里的特征向量是正交的、归一化的,即长度为1。

  下图展示DataAdjust数据和特征向量的关系:

  

  正号表示预处理后的样本点,斜着的两条线就分别是正交的特征向量(由于协方差矩阵是对称的,因此其特征向量正交),特征值较大的那个特征向量是这个数据集的主要成分(principle component)。通常来说,当从协方差矩阵计算出特征向量之后,下一步就是通过特征值,对特征向量进行从大到小的排序,这将给出成分意义的顺序。成分的特征值越小,其包含的信息量也就越少,因此可以适当选择。 

  如果数据中有n维,计算出n个特征向量和特征值,选择前k个特征向量,然后最终的数据集合只有k维,取的特征向量命名为FeatureVector。

 

  这里特征值只有两个,我们选择其中最大的那个,1.28402771,对应的特征向量是。

  第五步,将样本点投影到选取的特征向量上,得到新的数据集

  假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为

  这里是FinalData(10*1) = DataAdjust(10*2矩阵)×特征向量

  得到结果为

  

  下图是FinalData根据最大特征值对应的特征向量转化回去后的数据集形式,可看出是将DataAdjust样本点分别往特征向量对应的轴上做投影:

  

  如果取的k=2,那么结果是

  可见,若使用了所有特征向量得到的新的数据集,转化回去之后,与原来的数据集完全一样(只是坐标轴旋转)。

[转载] Python 主成分分析PCA相关推荐

  1. Python 主成分分析PCA

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

  2. [转载] 机器学习之主成分分析PCA(Python实现)

    参考链接: 使用Python进行主成分分析PCA 理解PCA:what? why? how? 当我们拿到一个数据集的时候,往往数据集中每一个样本的描述是多维的,多维的特征空间不便于我们或者计算机对其进 ...

  3. 通俗解释如何理解主成分分析PCA,Python实现PCA主成分分析2维降到1维

    知道IEEE这个世界最大电子电气学术组织禁止华为资助和中国某些一流大学教授参与审稿这个消息我是愤怒的.我也是无奈的,学校考核必须发论文到这儿,不得不发.IEEE上面的论文中国人几乎占了三成(美国人搞学 ...

  4. Python数据集可视化:抽取数据集的两个特征进行二维可视化、主成分分析PCA对数据集降维进行三维可视化(更好地理解维度之间的相互作用)

    Python数据集可视化:抽取数据集的两个特征进行二维可视化.主成分分析PCA对数据集降维进行三维可视化(更好地理解维度之间的相互作用) 目录 Python数据集可视化:抽取数据集的两个特征进行二维可 ...

  5. 主成分分析(PCA)原理分析Python实现

    目录 1 引言 2 PCA的意义 3 PCA的实现步骤 4 弄懂PCA要回答的问题 5 PCA原理 5.1 如何降维? 5.2 如何量化投影以后样本点之间的区分度? 5.3 求取k维坐标系 5.3.1 ...

  6. 图解主成分分析PCA算法(附Python实现)

    0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用."深"在详细推导算法模型背后的数学原理:"广"在分析多个机器学习模型:决策树.支持 ...

  7. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

     深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening 主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通 ...

  8. 送书 | 主成分分析PCA

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

  9. 主成分分析(PCA)原理及推导

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/42264479 什么是PCA? 在数据挖掘或者图像处理等领域经常会用到主成分分 ...

最新文章

  1. 2022-2028年中国PVC糊树脂行业市场深度分析及市场规模预测报告
  2. vue右键自定义菜单_一款小巧的开源右键菜单管理软件
  3. 2018年第十届ACM四川省省赛题解(10 / 11)
  4. R删除数据列基于dplyr包
  5. 如何在Vmware-Workstation中配置两块网卡?
  6. java locale.us_JAVA实现国际化
  7. c语言水仙花数(输入判断),用c语言判断一个数是否为水仙花数?
  8. java 寻找和为定值的多个数_算法笔记_037:寻找和为定值的两个数(Java)
  9. ie6 css padding,IE6padding的一个影响布局的问题在
  10. dicom虚拟打印服务器,DICOM打印服务器软件
  11. Python风格总结:翻转列表、数组
  12. 解决mysql分页数据错乱问题
  13. 网易云音乐与腾讯闹掰;今日头条下架万条短视频;美团打车或将被吊证| CSDN 极客头条
  14. Ubuntu System Panel:Ubuntu 系统的新概念菜单
  15. CMU 15-213 Introduction to Computer Systems学习笔记(16) Virtual Memory: Concepts
  16. Python File文件方法操作open()
  17. 本地图文直接复制到动易CMS编辑器中
  18. FireStart教程:基于SharePoint的出差报销流程五
  19. 我的计算机管理怎么打不开,为什么打不开"计算机管理"
  20. 微信小程序、微信公众号客服转私人微信号,实现24小时客服在线

热门文章

  1. 攻防世界 MISC 新手练习区 答题(1-12题解)
  2. python qq邮箱发邮件_Python用QQ邮箱发邮件的实例教程
  3. mysql协议分析1,MySQL协议分析(1)
  4. 如何避免点击事件连续操作时元素变蓝
  5. 基于IntelliJIdea2020.3创建web项目
  6. 苹果手机上网速度慢_科普|手机信号明明满格却上不去网?4招帮你搞定它!
  7. 软件工程师的技能知识图谱0.2
  8. Codeforces Round #223 (Div. 2): E. Sereja and Brackets(线段树)
  9. bzoj 3156: 防御准备(斜率DP)
  10. neo4j的查询语法Cypher+python演示