基本概念梳理
主成分分析方法,是一种使用最广泛的数据降维算法。主要思想是将n维特征映射到k维上,这k维是全新的正交特征,这些正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。这k维构造得好不好,主要看k维空间下,对原始样本空间中数据的特点是否进行了有效的保持,这样机器学习性能才不会大打折扣,保持越多构造得就越好。
这些k维空间的正交特征可以理解为k个座标轴,这k个座标轴的选取是有规律的,一般第一个座标轴选取原始数据中方差最大的方向,第m个座标轴选取与前m-1个正交且使得数据在该轴上投影的方差最大的。
于是可以发现,大部分的方差都包含在前面k个座标轴中,后面的座标轴所含的方差几乎为0,于是就可以忽略剩下的座标轴,只保留前面k个含有绝大部分方差的座标轴,实现对数据特征的降维处理。
那么如何去选取确定这些座标轴具体的方向呢?就需要用到协方差矩阵,确定协方差矩阵的特征值对应的特征向量,按特征值大小来选取前k个座标轴(也就是特征向量),即可确定座标轴了。事实上,主成分分析集成了大量线性代数和概率统计的知识点,可以看一下之前写的几篇博客,可作为主成分分析的先导篇:透彻理解协方差与协方差矩阵、协方差矩阵的几何性质、ESL3.4 学习笔记。
看过之后即可知道,其实线性回归中的岭回归或者L2范数是根据数据在主成分方向上的数据分布和奇异值的大小来收缩权重,还有主成分分析其实是依靠特征值或奇异值分解协方差矩阵来进行的分析,都是有理有据令人信服的。
接下来就开始从统计学的角度,具体理解主成分分析。
再数据总体上进行的主成分分析称为总体主成分分析,在有限样本上进行的主成分分析称为样本主成分分析,前者是后者的基础。
总体主成分分析
统计分析中,数据的变量之间存在的相关性增加了分析的难度。所以就有由少数不相关的变量来代替相关的变量的方法,来表示数据,并要求能保留数据中的大部分信息。
在主成分分析中,首先要对数据进行规范化,使得数据的每一个变量的平均值为0,方差为1。之后对数据进行正交变换,把原来由线性相关变量表示的数据,通过正交变换变换成由若干个线性无关的新变量表示的数据(线性无关是为了区分开新变量,新变量上的方差大是为了保证这个新变量具有重要意义)。通过主成分分析,可以利用主成分近似地表示原始数据,这就类似于发现数据的基本结构,也可以理解为数据降维。
统计学习方法中的几何解释如下:
如果给定x=(x1,x2,⋯,xm)T是m为随机变量,其到m维随机变量y=(y1,y2,⋯,ym)T的线性变换为:
yi=αiTx=α1ix1+α2ix2+⋯+αmixm(16.1)
则有定义如下
这一部分的详细解释以及牵扯到的相关性质,在透彻理解协方差与协方差矩阵、协方差矩阵的几何性质这两篇博客中都有详细的介绍,重复内容在此就不展开介绍了,看完这两篇里面的内容再理解本篇笔记的知识就变得非常容易了。
在使用主成分分析的时候,有一个最基本的定理被许多人忽视了,即
简单讲就是,为什么协方差矩阵特征值从大到小排列之后,第几个特征值就对应第几个主成分的方差?如果从协方差的几何意义上考虑协方差矩阵的几何性质这篇博客中给出了答案。如果从数学意义上推导,统计学习方法第二版301页中给出了答案,用的是拉格朗日乘子法推导的。
此外,还有一个定理也常常被忽视。我们选择k个线性无关的变量来代替m个原有的线性相关的变量,那么为什么k是最优选择呢?或者说为什么就可以代替原来的m个原有的线性相关的变量了呢?首先明确保留原有变量的大部分信息,这里的信息是指原有变量的方差,这里存在着如下定理:
y的协方差阵的迹就是y各个随机变量的方差之和。通常令y的方差之和占x的方差之和的70%~80%以上,这样就反映了主成分保留信息的比例。
上面定理的证明主要证明步骤简单说下:
B是缩减x的维度的一个列满秩阵,也就是列向量(q个向量)线性无关。要证明的是B这样缩减维度的矩阵,在取A的前q列时能保留最多信息。
证明思路就是,假设B和A无关,由于A是m维空间上的正交基,所以B可以由A的列表示:
βk=∑j=1mcjkαj,k=1,2,⋯,qB=AC
下面就通过上面的式子,写出目标函数的表达式,也就是y协方差阵的迹的表达式。首先有
BTΣB=CTATΣAC=CTΛC=j=1∑mλjcjcjT
所以表达式为
tr(BTΣB)=j=1∑mλjtr(cjcjT)=j=1∑mλjtr(cjTcj)=j=1∑mλjcjTcj=j=1∑mk=1∑qλjcjk2
这里目标函数放在这了,下面就看看变量c的范围是什么。首先有
C=ATB
CTC=BTAATB=BTB=Iq
其实就是因为A列正交,B列正交,所以得出C列也是正交的,于是
tr(CTC)=tr(Iq)∑j=1m∑k=1qcjk2=q
这时候可以把C看成是某个m阶正交矩阵D的前q列,正交矩阵D行也正交,所以行的模也为1,而c的长度是q仅仅代表D的前q个元素,所以c的行的模一定是小于等于1的。即
k=1∑qcjk2⩽1,j=1,2,⋯,m
那前面有条件∑j=1m∑k=1qcjk2=q,并且特征值是从大到小排列的关系λ1⩾λ2⩾⋯⩾λq⩾⋯⩾λm,回顾一下目标函数的表达式是∑j=1m∑k=1qλjcjk2。所以肯定是给越大的特征值分配最大的系数的方案是最佳的,于是
k=1∑qcjk2={1,0,j=1,⋯,qj=q+1,⋯,m
B=AC,仔细一看,C这样取值时候的B不就是A的前q列吗。
接下来就是规范化变量的总体主成分了。
在实际问题中,不同的变量可能有不同的量纲,直接求主成分有时会产生不合理的结果,所以需要对变量进行规范化之后再求主成分。
值得注意的是,规范化后的协方差矩阵就是样本相关阵,也就是说对角线上元素是1,非对角线上元素是变量两两之间的相关系数。样本相关阵的主成分有如下几个性质。
- 规范化变量主成分的协方差矩阵是:A∗=diag(λ1∗,λ2∗,⋯,λm∗)
- 协方差矩阵的特征值之和为m:tr(ATΣA)=tr(ΣATA)=tr(Σ)=m
- 规范化随机变量xi∗与主成分yk∗的相关系数如下,其中ek∗=(e1k∗,e2k∗,⋯,emk∗)T是样本相关阵对应特征值λk∗的单位特征向量
ρ(yk∗,xi∗)=λk∗eik∗,k,i=1,2,⋯,m
- 所有规范化随机变量xi∗与主成分yk∗的相关系数的平方和为
i=1∑mρ2(yk∗,xi∗)=i=1∑mλk∗eik∗2=λk∗,k=1,2,⋯,m
- 规范化随机变量xi∗与所有主成分yk∗的相关系数的平方和为1:
k=1∑mρ2(yk∗,xi∗)=k=1∑mλk∗eik∗2=1,i=1,2,⋯,m
样本主成分分析
样本主成分分析和总体主成分分析的主要差别就在于协方差阵的求解上,具体就是方差的求解。样本协方差阵S可表示为
S=[sij]m×msij=n−11∑k=1n(xik−xˉi)(xjk−xˉj),i,j=1,2,⋯,m
样本相关矩阵R为
R=[rij]m×m,rij=siisjjsij,i,j=1,2,⋯,m
和前面的内容一样,yi的样本方差可写为
var(yi)=n−11j=1∑n(aiTxj−aiTx)2=aiT[n−11j=1∑n(xj−x)(xj−x)T]ai=aiTSai
yi和yk的样本协方差可写为
cov(yi,yk)=aiTSak
对于规范化后的样本数据矩阵X,样本的协方差阵S也就是样本相关矩阵R的表达式为
R=S=n−1(X−X)(X−X)T=n−1XXT
这是一个对总体协方差阵的无偏估计。S的特征值和特征向量是总体协方差阵的特征值与特征向量的极大似然估计。
统计学习方法中对样本主成分定义如下: