PCA原理解释
Posted xiashiwendao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCA原理解释相关的知识,希望对你有一定的参考价值。
上图讲述的两组数据,可以看到左图的数据离散度比较大,相关性比较弱,右图数据的相关性比较强;我们在使用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原理解释的主要内容,如果未能解决你的问题,请参考以下文章
sklearn 上的 PCA - 如何解释 pca.components_