一、协方差矩阵
首先,协方差矩阵一定是实对称阵。
正交矩阵的逆等于矩阵的转置。**
一个维度上方差的定义:

协方差的定义:

协方差就是计算了两个维度之间的相关性,即这个样本的这两个维度之间有没有关系。

协方差为0,证明这两个维度之间没有关系,协方差为正,两个正相关,为负则负相关。
协方差矩阵的定义:
对n个维度,任意两个维度都计算一个协方差,组成矩阵,定义如下:

直观的对于一个含有x,y,z三个维度的样本,协方差矩阵如下:

可以看出,对角线表示了样本在在各个维度上的方差。

其他元素表示了不同维度之间两两的关联关系。

二、协方差矩阵的计算
(1)先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,

(2)然后直接用新的到的样本矩阵的转置乘上它自身(注意,这里我假设样本矩阵中,每一行代表一个样本,每一列表示一个维度,很多推导因为样本表示的不同可能会造成误会)

(3)然后除以(N-1)即可

数学推导相对容易,样本矩阵中心化以后,样本均值为0,因此式a中每个维度无需减去均值,只需要进行与其他维度的乘法,

这样就可以用转置相乘实现任意两两维度的相乘。

三、矩阵相乘的‘变换的本质’理解

A*B两个矩阵相乘代表什么?

A的每一行所表示的向量,变到B的所有列向量为基底表示的空间中去,得到的每一行的新的表示。

B的每一列所表示的向量,变到A的所有行向量为基底表示的空间中去,得到的每一列的新的表示。

四、PCA深入

PCA的目的是降噪和去冗余,是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

样本矩阵的格式:

样本1 [特征a1,特征a2,特征a3,…,特征an]

样本2 [特征a1,特征a2,特征a3,…,特征an]

样本3 [特征a1,特征a2,特征a3,…,特征an]

样本4 [特征a1,特征a2,特征a3,…,特征an]

PCA后:r<n

样本1 [特征b1,特征b2,特征b3,…,特征br]

样本2 [特征b1,特征b2,特征b3,…,特征br]

样本3 [特征b1,特征b2,特征b3,…,特征br]

样本4 [特征b1,特征b2,特征b3,…,特征br]

直白的来说,就是对一个样本矩阵,

(1)换特征,找一组新的特征来重新表示

(2)减少特征,新特征的数目要远小于原特征的数目

我们来看矩阵相乘的本质,用新的基底去表示老向量,这不就是重新找一组特征来表示老样本吗???

所以我们的目的是什么?就是找一个新的矩阵(也就是一组基底的合集),让样本矩阵乘以这个矩阵,实现换特征+减少特征的重新表示。
因此我们进行PCA的基本要求是:

(1)第一个要求:使得样本在选择的基底上尽可能的而分散。

样本在基底上要尽可能分散了,这个分散就是样本在这个“基底上的坐标”(这个基底上的特征值)的方差要尽可能大

(2)第二个要求:使得各个选择的基底关联程度最小。

考虑一个三维点投影到二维平面的例子。这样需要俩基底。

基底得一个一个找啊,先找第一个,要找一个方向,使得样本在这个方向上方差最大。

再找第二个基底,怎么找,方差最大?这不还是找的方向和第一个差不多么?那这两个方向表示的信息几乎是重复的。

所以从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。所以最好就是选择和第一个基底正交的基底。

那怎么找呢?不能随便写一个矩阵吧?答案肯定是要基于原来的样本的表示。

我们求出了原来样本的协方差矩阵,协方差矩阵的对角线代表了原来样本在各个维度上的方差,其他元素代表了各个维度之间的相关关系。

也就是说我们希望优化后的样本矩阵,它的协方差矩阵,对角线上的值都很大,而对角线以外的元素都为0。

现在我们假设这个样本矩阵为X(每行对应一个样本),X对应的协方差矩阵为XTXX^TXXTX(用上面的方法计算的,常数不影响计算,因此没有除),而P是我们找到的对样本进行PCA变换的矩阵,既一组基按列组成的矩阵,我们有Y = XP
Y即为我们进行PCA变换后的新的样本表示矩阵,则Y的协方差矩阵为YTYY^TYYTY,用X的协方差矩阵表示Y的协方差矩阵:
YTY=(XP)T(XP)=PTXTXPY^TY = (XP)^T(XP) = P^TX^TXPYTY=(XP)T(XP)=PTXTXP
注意:对称阵不一定是可逆阵,二者没什么必然的联系
现在,我们把Y的协方差矩阵表示成了一个很熟悉的形式:方阵可对角化的表达式(XTXX^TXXTX是方阵)
让我们来回忆一下可对角化矩阵的定义,顺便也回忆了矩阵相似的定义:
(1)什么是可对角化和相似:如果一个方块矩阵 A 相似于对角矩阵,也就是说,如果存在一个可逆矩阵 P 使得 P−1APP^{-1}APP−1AP 是对角矩阵,则它就被称为可对角化的。
(2)如何判断可对角化呢:我们再来回忆一下矩阵可对角化的条件:n × n 矩阵 A 只在域 F 上可对角化的,如果它在 F 中有 n 个不同的特征值,就是说,如果它的特征多项式在 F 中有 n 个不同的根,也就说他有n个线性无关的特征向量,这三条件是等价的,满足一个就可以对角化。
注意哦:有n个线性无关的特征向量并不一定代表有n个不同的特征值,因为可能多个特征向量的对于空间的权重相同嘛。。。但是n个不同的特征值一定有n个线性无关的特征向量啦。

XTXX^TXXTX是协方差矩阵,协方差矩阵是实对称矩阵,有很多有用的性质:
a.所有特征值都为实数
b.不同特征值对应的特征向量互相正交
c.设A是实对称矩阵,存在正交矩阵U和对角矩阵W,使得U−1AU=WU^{-1}AU =WU−1AU=W,其中W的对角线元素是A的特征值,而U的列向量是A的特征向量。
d.k重特征值对应的线性无关的特征向量恰好有k个

1)实对称矩阵不同特征值对应的特征向量,不仅是线性无关的,还是正交的。
2)设特征向量重数为r,则必然存在r个线性无关的特征向量,因此可以将这r个特征向量单位正交化。
3) n阶实对称矩阵C,一定存在一个正交矩阵E,满足如下式子,即C既相似又合同于对角矩阵。(这里又温习了合同的概念哦)

由上面两条可知,一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e1,e2,...,ene_1,e_2,...,e_ne1​,e2​,...,en​

我们将其按列组成矩阵:E=(e1,e2,...,en)E = (e_1,e_2,...,e_n)E=(e1​,e2​,...,en​)
至此,PCA中,我们要找的变换矩阵就是这个E!!!

PCA算法总结:

设有n条m维的数据。
1)将原始数据按行组成n行m列矩阵X,代表有n个数据,每个数据m个特征
2)将X的每一列(代表一个属性字段)进行零均值化,即减去这一列的均值
3)求出协方差矩阵C=1nXTXC=\frac{1}{n}X^TXC=n1​XTX
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按列排列成矩阵,取前k列组成矩阵P
6)Y=XP即为降维到k维后的数据

协方差矩阵与PCA原理深入剖析相关推荐

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

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

  2. PCA原理分析和Matlab实现方法(三)

    PCA主成分分析原理分析和Matlab实现方法(三) [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/68487833   ...

  3. 机器学习之PCA原理

    PCA(principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...

  4. 《影响力》承诺和一致原理深入剖析,人们对自己的选择是很相信的

    <影响力>承诺和一致原理深入剖析,人们对自己的选择是很相信的 如果不了解<影响力>这本书请看之前的文章: <影响力>6个使人顺从的武器之一互惠原理深入剖析 愚蠢的五 ...

  5. PCA原理分析和意义(二)

    原文链接:http://blog.csdn.net/xl890727/article/details/16898315 在进行图像的特征提取的过程中,提取的特征维数太多经常会导致特征匹配时过于复杂,消 ...

  6. Unity协程(Coroutine)原理深入剖析再续

    Unity协程(Coroutine)原理深入剖析再续 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 前面已经介绍过对协程(Coroutine ...

  7. Spark PersistenceEngine持久化引擎与领导选举代理机制内核原理深入剖析-Spark商业环境实战...

    本套系列博客从真实商业环境抽取案例进行总结和分享,并给出Spark源码解读及商业实战指导,请持续关注本套博客.版权声明:本套Spark源码解读及商业实战归作者(秦凯新)所有,禁止转载,欢迎学习. Sp ...

  8. 《影响力》6个使人顺从的武器之一互惠原理深入剖析

    <影响力>6个使人顺从的武器之一互惠原理深入剖析 互联网时代人们更加不愿意动脑子来做选择,从而使得无意识的顺从行为更加普遍. <影响力>每一个原则均能使人产生不同的自动.无意识 ...

  9. 深入解读 MySQL 架构设计原理,剖析存储架构选型核心

    孙玄,江湖人称"玄姐",前58集团技术委员会主席,前转转二手交易平台首席架构师.今天想跟你聊点儿企业里那些年薪百万的架构师,他们的架构设计思维是如何升级的,以及他们是如何玩转 My ...

最新文章

  1. 巧用 TypeScript Literal Types 模拟枚举类型
  2. NSUInteger和NSInteger和int
  3. ByteBuffer常用方法详解
  4. PHP_VERSION获取php版本
  5. Java基础之深入认识hashCode和equals
  6. 【主席树】bzoj1112: [POI2008]砖块Klo
  7. Flask接通微信公众号
  8. python日志记录_Python日志记录
  9. 【电路仿真】基于matlab GUI Simulink钟摆自由控制【含Matlab源码 991期】
  10. 我们来看看load data infile 需要注意的一些地方
  11. 腾讯云和阿里云mysql性能对比_阿里云腾讯云服务器官方性能及实际体验对比
  12. Java_Dubbo视频教程-雷丰阳-专题视频课程
  13. GNS3各种IOS下载
  14. 我用Java框架Guava解决了空指针异常问题
  15. 大学计算机基础网络配置实验报告答案,2008大学计算机基础实验报告参考答案...
  16. 使用第三方账号认证(一):钉钉扫码登录
  17. 计算机在服装上的应用研究,图像识别技术在纺织品及服装研究中的应用
  18. 关于Ctrl+PageDown在使用查找功能后不能使用的问题
  19. 如果房贷被拒了怎么办?
  20. 由年化收益率一词引申出的投资理财想法和公式

热门文章

  1. win11小鹤双拼改回全拼
  2. Kaldi-Timit 训练
  3. 图解三代测序(Nanopore)
  4. 大数据相加_大数据相加
  5. [云原生]~云原生简介
  6. mySQL的备份及导入
  7. 盘点招招毙命的29种USB攻击方式
  8. 20 行 Python 代码批量抓取免费高清图片!
  9. Div+CSS网页设计(HTML5)
  10. Lession11 集合和泛型(ArrayList方法、Arraylist类、ArrayList添加对象、ArrayList长度、HashTable类、Hashtable类练习-----)