主成分分析-PCA

PCA(principal component analysis )主成分分析

   可以有效的降低数据的维数,将数据解相关并且找寻能量最大的分量。

     一种描述是:通过一种线性变换(矩阵相乘)将原始数据变换为一组各维度(各个基)线性无关(协方差最小)数据表示,然后基于此提取数据的主要线性分量(主要成分)z = w^Tx 【3】

关键点:线性无关,说明各个基是线性无关的,也即是正交,那么正交是线性无关?

                主要线性分类为主要成分(也即是方差最大的维度)

                线性变换:一个矩阵与A相乘得到矩阵B,则称为对A做线性变换得到B,也可以说一个矩阵表示一种线性变换

  一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果

参考:http://blog.codinglabs.org/articles/pca-tutorial.html PCA的数学原理

新基*原始数据矩阵=变换后的数据矩阵

相当于后面描述的P*X=Y,将新基P的求解问题转化为后面描述的\begin{array}{l l l}D=PCP^\mathsf{T} \end{array}(D为Y的协方差矩阵,C为X 的协方差矩阵),而满足变换后的数据能较好表示原始数据的条件是D为对角化矩阵,则转化为求解D对角化也即是C如何变化为对角矩阵,此时问题即可转变为数学上实对称矩阵的对角化问题

            

   简单描述:PCA相当于变换到另一个坐标空间中,那么基的表示发生变化。在原基的原始信号通过变换到新基,在新基内有一种新的表示方式,如何求新基,也就是需要求投影向量,在新基中如何选择最优的一组基表示原始信号,使得还原的信号既能很好的表示原始信号,同时数据的维度下降。

 如何选择最优的一组基?依据是选择一维基使得所有数据投影到此基的坐标表示后数据的离散程度最大(方差最大),下一组基的选择要保持和第一组基的相关性最小才有意义(协方差最小,协方差表示字段之间的相关程度,相关系数表达式的分子)

因此新基的求法问题转化为:求取投影向量使得数据变换后(Y)的各投影向量上方差最大且相互之间的协方差最小。

(实际上协方差和方差可以用协方差矩阵涵盖,协方差为实对称矩阵,对角线上的值的方差,两边值为协方差)

另一种表述是:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段相互之间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)

方差越大,说明数据越分散。通常认为,数据的某个特征维度上数据越分散,该特征越重要

协方差为零从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息

解释参考:【3】https://blog.csdn.net/hustqb/article/details/78394058图文并茂的PCA教程

问题是:新的正交基怎么得到?

假设原始数据X的协方差矩阵为C,P为一个变换使得Y=PX,得到Y的协方差矩阵为D

          \begin{array}{l l l} D & = & \frac{1}{m}YY^\mathsf{T} \\ & = & \frac{1}{m}(PX)(PX)^\mathsf{T} \\ & = & \frac{1}{m}PXX^\mathsf{T}P^\mathsf{T} \\ & = & P(\frac{1}{m}XX^\mathsf{T})P^\mathsf{T} \\ & = & PCP^\mathsf{T} \end{array}

上述的优化目标转化为:寻找一个矩阵P,满足PC{\color{Red} P^{T}}是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。

其中PCP^{T}为变换后数据的协方差矩阵

协方差矩阵C是一个实对称矩阵,实对称矩阵求法转化为求特征值和特征向量(此时的C相当于下图中的A)可参考:特征和特征向量的求法https://wenku.baidu.com/view/6d33640df12d2af90242e6d4.html

涉及的相关数学知识;

相关、独立、正交基、内积、的理解?

相关可用协方差大小表示,协方差值为正则为正相关,为负则为负相关,值越大相关性越强,值越小,相关性越弱;值为0不相关。在数据的关系中例如采集的心率和呼吸,如果他们的相关性越小,则越好分离(PCA可以起到去相关的目的,上述求协方差矩阵的过程就是使得数据之间的协方差最小)

正交基类似于坐标轴的x和y轴,任何一个数据点都可以用x和y来表示,其中每个数据点又可看做是往每个坐标轴的投影值,正交基可认为它们是相互正交的单位向量

内积为两个向量相乘的结果,比如A向量乘以B向量,相当于求A向量在B向量的投影,然后再乘以B的模值A\cdot B=|A||B|cos(a)

原始数据:样本点和维度区分?

 数据可以用向量表示;一个样本点可能有m个特征,将n个样本按行排列,样本的特征按列排列则构成n*m的矩阵。其中的每行每列可称为行向量列向量。

基变换的理解?

可以描述为:数据从原始基向新基变换得到在新基中的坐标表示

数据可表示为列向量形式,每行表示一个样本;

基可表示为行向量的形式,一行表示一个基;例如二维坐标轴X和Y;可表示为2*2的矩阵,基X用一个向量表示即是(1,0)

基Y用一个向量表示即是(0,1),表示成矩阵的形式是一个对角矩阵,在对角线上为1,两边为0,这说明了基是对角化的;(也即是上面求的原始数据协方差矩阵的对角化(方差最大、协方差最小),然后问题转化为:求原始数据协方差矩阵的对角化问题)

新基*原始数据(旧基上的表示)=新基上的数据表示

协方差矩阵对角化和基的关系?

例如:

旧基  原始数据         协方差(不一定对角化,原始数据代表数据实际情况的表现形式,包含各种情况,各个字段(字段是一个特征对应的所有样本)的方差,也即是这个字段偏离均值的程度,可能集中、分散;和各个字段之间的相关性(协方差)可能相关(包含负相关、正相关、弱相关、强相关)、不相关);举个例子:学生的好奇心(值大小0-1)和创新能力(值大小0-1)构成一个矩阵,则一个学生包含两个特征值(好奇心、创新能力)有n个学生,则构成n*2的矩阵,其中好奇心字段的所有学生的好奇心值的是否集中不得而知,选择的样本不同结果不一样,同理创新能力字段也一样;再是好奇心值大小和创新能力大小之间的相关程度是如何同样是不得而知的,可能好奇心强则创新能力强,或者好奇心强则创新能力弱,此时需要求这两个字段的协方差矩阵做进一步分析。

新基  变换后数据     协方差是对角化的(必须使对角化这样变换后的数据才能最好的表示原始数据,关键理解变换后数据的目的)

求相关矩阵Rxx的特征值特征向量

为什么实对称矩阵的对角化就转化为求特征值和特征向量?

参考矩阵论等相关知识!

【1】协方差矩阵 http://www.cnblogs.com/chaosimple/p/3182157.html

【2】主成分分析最大方差解释https://www.cnblogs.com/hadoop2015/p/7419087.html

【3】协方差和方差的关系讲的不错!https://blog.csdn.net/hustqb/article/details/78394058

【4】PCA的数学原理 http://blog.codinglabs.org/articles/pca-tutorial.html (讲的特别好!)

【5】特征和特征向量的求法 https://wenku.baidu.com/view/6d33640df12d2af90242e6d4.html

猜你喜欢

转载自blog.csdn.net/heda3/article/details/83033663