码迷,mamicode.com
首页 > 其他好文 > 详细

PCA原理解释

时间:2018-11-11 23:24:41      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:没有   方程式   mil   text   坐标   log   思考   数据量   使用   

 

技术分享图片

上图讲述的两组数据,可以看到左图的数据离散度比较大,相关性比较弱,右图数据的相关性比较强;我们在使用PCA的时候,就是要将相关性强的数据进行降维,以减少处理的数据量。

那么怎么描述数据的相关性呢?使用期望,协方差以及相关系数:下面分别是左图和右图的数字特征:

技术分享图片

 

技术分享图片

其实其关键性做得是R,R说明了点间的相关性,但是想要知道R你必须要知道Sigma(X),想要知道Sigma(X)你有必须要知道期望,所以获取点间的关系,必须要求得期望和协方差。

协方差的价值有量个:

1.协方差大于零说明两套数据变化趋势是一致的;

2. 协方差=0,说明数据没有相关性

注意,这里说的是协方差,对于方差而言,方差值大小代表数据离散程度。

协方差矩阵的作用:

1. 对角线上面的是数据的方差;

2. 无关数据的形式除了对角线上的数据,其他都是0.

那么我们现在目标是找到一个新的坐标系,将xy坐标系中相关数据进行映射,保证了在新的坐标体系下面,数据是不相关的,即:他们的协方差矩阵除了对角线之外全为0。

假设存在这个平面,之前的数据为x,新的映射平面y,有

y = Gx,G为常量矩阵,实现了x数据的伸缩和旋转,这里应该主要是旋转;

于是,这个新的坐标系下面的y可以推导为:

sigma(y) = E{[y - E(y)][y - E(y)].T}

sigma(y) = E{[Gx - E(Gx)][Gx - E(Gx].T}

sigma(y) = GE{[x - E(x)][x - E(x)].T}G.T

sigma(y) = Gsigma(x)G.T

因为目标是sigma(y)中,除了对角线,其他点都是0, 为了满足这一点,首先G应该是sigma(x)的特征矢量的转置,而且是一个正交矩阵,这样就满足了最终的结果是:

技术分享图片

对角线的值就是各个维度的方差值。同时按照从大到小的排列,这里采用的是K-L变换(霍特林变换)。所谓的主成分,就是排在前面的几个λ对应的特征,取决于你打算要几个主成分。

然后,用x去乘以所选取的特征向量组(所选的几个λ对应的特征向量),这个操作本质完成的数据的旋转,将数据旋转到一个维度减少"平面",这个平面能够包含主成分的数据(非主成分的数据飞出平面也无所谓了,所谓主成分就是大多数的数据);所谓包含即使指投影,将原来空间的数据项旋转后的平面做投影。

PCA的的协方差部分解释完了,下面就是在上面最后提到了特征矢量(特征向量),什么是特征向量?对于方阵矩阵A:

Ax = λx

λ称之为方阵A的特殊值,x就是方阵A对应λ的特征向量,由定义的公式可以变型为:

(A - λE)x = 0

其中|A - λE|称之为特征多项式。求λ的思路就是首先求行列式|A - λE| = 0来获得特征值;然后再将将特征值带入到(A - λE)x = 0中可以求得基础解系pi,k*pi都是A的特征向量。

紧接着,我们看一下什么是基础解系呢?

基础解系首先是向量组线性相关的概念,在介绍基础解系之前要明白什么是解向量:

技术分享图片

上式可以简化写成向量方程:Ax = 0;

那么向量[x1,x2,x3...,xn)就是方程(1)的解向量,是Ax=0的解。

解向量有如下的性质:

1) A(x1 + x2) = Ax1 + Ax2 = 0

2) A(kx1) = kA(x1) = 0

由上可得:x = k1x1 + k2x2 + ... + knxn,这个就叫做方程Ax = 0的通解;

齐次线性方程组的最大无关组,称之为该齐次线性方程组的基础解系,所以求通解,只要把基础解系(即x1,x2,...,xn)求出来,既可以求得通解。

在求解过程上,首先将矩阵A进行最简行变化,选择转化为方程式,然后从中选取n - r个变量作为非自有解,指定具体的值,从而推算出r个自由变量的值,这个r个自由变量的值就是在配上之前的非自由解,就确定了一组基础解析。在求解基础解系的过程中,用到了一个定理:

设m * n矩阵,R(A) = r,则n元齐次线性方程组Ax = 0的解集S的秩Rs = n - r。

说明:设R(A) = n的时候,没有基础解析,只有零向量;R(A) < n的时候,方程式的基础解系中包含有n - r个解。根据最大无关性质,方程组(1)中任意n - r个解都可以组成一个基础解系,所以,方程组的基础解系并不唯一 => 通解形式也不唯一。

一个一个的来捋,首先思考一下为什么R(A) = n只有零向量呢?首先要建立一个概念,就是矩阵方程的理念是用别的变量来表示变量,例如下面的情况:

技术分享图片

x1 = -x2 +2 * x3 - x4 - 4 * x5

x2 = x3 - x4

x4 = 3 * x5

x1, x2, x4叫做非自由变量,因为他们是需要其他变量来进行表示;设想一下,如果R(A) = n将会发生什么情况:xn = 0!满秩代表着x[n-1]是由xn表示,那么=>x[n-1]是0以此类推,所有的x都是0,所以,如果R(A) = n,那么只有零解。

第二个,里面提到了"最大无关性质",什么是最大无关?上面我们提到了非自由变量有自由变量线性来表示;这个其实就是"线性表示",只有向量组(矩阵)是线性相关的时候才时候,才能够实现线性表示。那么什么是线性表示?除了公式中给出的表示之外,在二维空间里面,线性相关代表共线,在三维空间中,代表共面。

最大无关组:

1)向量组A0:a1, a2, a3, ..., ar线性无关;

2)向量组A中任何r+1个向量都是线性相关的,那么

称A0为最大无关向量组,简称最大无关组。最大无关组所包含向量的数量,称之为秩。

 

好了,这次就先挖到这里吧。

 

参考:

 

中心化(又叫零均值化)和标准化(又叫归一化)

https://blog.csdn.net/GoodShot/article/details/80373372

图像处理中的数学原理详解20——主成分变换(PCA)

https://blog.csdn.net/baimafujinji/article/details/50372906

图像处理中的数学原理详解21——PCA实例与图像编码

https://blog.csdn.net/baimafujinji/article/details/50373143

PCA原理解释

标签:没有   方程式   mil   text   坐标   log   思考   数据量   使用   

原文地址:https://www.cnblogs.com/xiashiwendao/p/9943610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!