偏最小二乘回归是PCA、CCA和传统最小二乘模型的结合。
一、PCA主成分分析:
1.我们希望对数据进行有损压缩,即将属于R^n的x投影为属于R^l的c,有编码函数f(x)=c,使得损失的信息尽量少。同时有对应的解码函数g(c)约等于x。
2.PCA由我们确定的解码函数而定,为了简化解码器,我们让g(c)=Dc,其中设D为一个属于R^(n*l)的矩阵,D可以有多个解,但我们假设D中的列向量都有单位范数,并限制D的列向量彼此正交(由于垂直的基更容易表示向量)。
3.假设我们现在已经找到了这个D,如何在给定x的情况下找到最优的编码c呢?方法是:选取使x-g(c)的二范数最小的c。x-g(c)的二范数可以进行如下变换。
(1)使得x-g(c)的二范数--等价于--使得二范数的平方最小(二范数非负)
(2)x-g(c)二范数的平方=(x-g(c))^T*(x-g(c)),根据矩阵运算的分配律和向量的xTy=yTx,矩阵的(AB)T=BTAT。上式最终变换为xTx-2xTg(c)+g(c)Tg(c)。第一项与c无关,去掉。
(3).将g(c)=Dc代入,上式=-2(x’)Dc+c’D’Dc=-2(x’)Dc+c’c (因为设D有正交性和单位范数)。
(4)上式的对c求最小化,令上式的对c的偏导为0,推出c=D’x。由此我们知道了当D被确定后如何给定x求c。
4.现在挑选最优的D。考虑降到1维的情况,则选取的矩阵D为R^n的向量d,选取令sum(xi-dd’xi)的二范数的平方))最小(并满足d’d=1)的d,该最优化问题的矩阵形式为X-Xdd’的二范数的平方最小化,则
X-Xdd’的二范数=Tr[(X-Xdd’)’(X-Xdd’)],
5.以上最优化问题变化为(简化过程使用Tr迹运算的定理,(1)Tr(A)=Tr(A^T) (2)Tr(ABC)=Tr(CAB)=Tr(BCA) (3)Tr(实数)=实数)求使得Tr(d’X’Xd)最大并满足d’d=1的向量d。
6.优化问题的最终形式使用特征分解来求解。最优的d是X‘X最大特征值对应的特征向量。以上为l=1时,选取特征值最大的向量,进行推广,则选取前l个最大的特征值对应的特征向量。以列为样本、行为属性的情况下,若零均值化,协方差矩阵即为(1/(m-1))* X‘X。对其求前l个最大特征值对应的特征向量,并进行单位化,将他们一行行排起来,用数据矩阵左乘它就能得到降维后的数据矩阵(即C=D’X)。
7.使用:以行为样本为例,将原数据矩阵每个值减去该列的均值(零均值化),再计算数据集的协方差阵(1/m)* XX’,求出特征值和特征向量,将特征向量单位化,选取前k个最大的特征值对应的特征向量(k为需要的维度量,或按照k的选取选择1-前k个特征值总和占特征值总和的比例<=阈值(比如0.01)),按列排列,原零均值矩阵右乘该矩阵。
8.矩阵的对角化:将一个变换左乘一组向量的逆,右乘一组向量,就能将这个变换表示成以那组向量为基视角下的变换矩阵。如果这组向量选的是特征向量(当然前提是特征向量能张成空间),那么就将那个变换变成对角矩阵了。所以矩阵能对角化的条件是有n个线性无关的特征向量,这样才有足够多的方向能用了选择作为对角化的视角。对于实特征阵,特征向量PCP‘=对角阵。
9.协方差阵的对角化,即P*(1/(m-1))* XX’*P’=(1/(m-1))*PX*(PX)’,即为根据特征向量进行变换后的矩阵的协方差阵,其中各方差由大到小排列(因为特征向量如此排列)在对角线上,协方差都为零(满足各特征独立/正交)。故成功将原数据转化。
10.其他降维方法总结:
(1)PCA。需要注意的是,新的主成分并不是由实际系统产生的,因此在进行PCA变换后会丧失数据的解释性。
(2)缺失值比例大于一个阈值的列去除。
(3)低方差滤波:方差小于一个阈值的列去除。
(4)高相关滤波:对归一化后的各列两两计算相关系数,大于一定阈值的删除其中一列。
(5)随机森林判别法:在随机森林中常被选作最佳分类标准的属性评分更高。
二、CCA典型相关分析:
1.典型相关性分析研究假如有一堆样本点,每个点的x是多维的,y也是多维的,如何研究x与y间的相关关系。CCA是这样做的,将x用a1权重向量变换为一维,y用b1权重向量变换,选取a1、b1的标准是使得变换后的一维特征x和y的相关系数最大化。
2.根据以上的思想,该问题可以转化为优化问题
使得a1’*变换前x的方差矩阵*a1=1,b1’*变换前y的方差矩阵*b1=1,
使得a1’*变换前协方差矩阵*b1最大
设lambda和v为拉格朗日乘数,使用拉格朗日乘数法推导该问题,结合上面的多维求导公式,得结论
(Lamda=v=变换后的相关系数(2)方1^-1*协方*方2^-1 *协方*a1=lambda^2*a1)
解式二的特征值问题,特征向量为a1。
3.CCA主要在多视图学习的特征融合方面有着广泛的应用,比如两张图片,一张正脸,一张侧脸,我们需要做一个人脸识别系统,就需要对其进行双视图学习,我想如果我们把这两张图结合在一起识别率一定会提高的,我们就需要用到CCA。
三、PLSR偏最小二乘回归
步骤:
1.先对多维的x和y进行标准化,设权重向量w1和v1,将原来的x和y变换为一维特征t1和u1,权重选取的目标是使得变换后两个特征自身方差极大化且互相之间相关系数极大化。该问题可转化为问题:使得w1’X‘Yv1最大并使得w1、v1二范数平方=1。求解该问题,非常类似上面的CCA求解,最后解特征向量求得t1、u1。
2.建立回归模型X0=t1alfa1+X1,X1为残差矩阵(Y也建立相同模型,自变量为t1)。Alfa1是参数向量。根据最小二乘估计解得alfa1=t1‘X0/t1二范数的平方,beta1将X0换Y0.
3.估计出权重后计算残差的范数,未小于阈值则将残差矩阵看作X和Y重复以上步骤。
4.最后的预测模型将所有式子一起代入,可求出通过多维X算出多维Y的式子。