现在的位置: 首页 > 综合 > 正文

偏最小二乘法回归(Partial Least Squares Regression)

2013年06月13日 ⁄ 综合 ⁄ 共 3093字 ⁄ 字号 评论关闭

偏最小二乘法回归(Partial Least Squares Regression)

[pdf版本]偏最小二乘法回归.pdf

1. 问题

这节我们请出最后的有关成分分析和回归的神器PLSR。PLSR感觉已经把成分分析和回归发挥到极致了,下面主要介绍其思想而非完整的教程。让我们回顾一下最早的Linear Regression的缺点:如果样例数m相比特征数n少(m<n)或者特征间线性相关时,由于clip_image002(n*n矩阵)的秩小于特征个数(即clip_image002[1]不可逆)。因此最小二乘法clip_image004就会失效。

为了解决这个问题,我们会使用PCA对样本X(m*n矩阵)进行降维,不妨称降维后的X为X’(m*r矩阵,一般加了’就表示转置,这里临时改变下),那么X’的秩为r(列不相关)。

2. PCA Revisited

所谓磨刀不误砍柴工,这里先回顾下PCA。

令X表示样本,含有m个样例clip_image006,每个样例特征维度为n,clip_image008。假设我们已经做了每个特征均值为0处理。

如果X的秩小于n,那么X的协方差矩阵clip_image010的秩小于n,因此直接使用线性回归的话不能使用最小二乘法来求解出唯一的clip_image012,我们想使用PCA来使得clip_image002[2]可逆,这样就可以用最小二乘法来进行回归了,这样的回归称为主元回归(PCR)。

PCA的一种表示形式:

clip_image014

clip_image015

其中X是样本矩阵,P是X的协方差矩阵的特征向量(当然是按照特征值排序后选取的前r个特征向量),T是X在由P形成的新的正交子空间上的投影(也是样本X降维后的新矩阵)。

在线性代数里面我们知道,实对称阵A一定存在正交阵P,使得clip_image017为对角阵。因此可以让clip_image002[3]的特征向量矩阵P是正交的。

其实T的列向量也是正交的,不太严谨的证明如下:

clip_image019

其中利用了clip_image021,这是求P的过程,clip_image023是对角阵,对角线上元素就是特征值clip_image025。这里对P做了单位化,即clip_image027。这就说明了T也是正交的,
P是clip_image002[4]的特征向量矩阵,更进一步,T是clip_image029的特征向量矩阵(clip_image031

这样经过PCA以后,我们新的样本矩阵T(m*r)是满秩的,而且列向量正交,因此直接代入最小二乘法公式,就能得到回归系数clip_image012[1]

PCA的另一种表示:

clip_image033
(假设X秩为n)

这个公式其实和上面的表示方式clip_image014[1]没什么区别。

clip_image035
(当然我们认为P是n*n的,因此clip_image037

如果P是n*r的,也就是舍弃了特征值较小的特征向量,那么上面的加法式子就变成了

clip_image039

这里的E是残差矩阵。其实这个式子有着很强的几何意义,clip_image041clip_image002[5]clip_image043大特征值对应的归一化后的特征向量,clip_image045就是X在clip_image041[1]上的投影。clip_image047就是X先投影到clip_image041[2]上,还以原始坐标系得到的X’。下面这个图可以帮助理解:

clip_image052

黑色线条表示原始坐标系,蓝色的点是原始的4个2维的样本点,做完PCA后,得到两个正交的特征向量坐标clip_image054clip_image056。绿色点是样本点在clip_image054[1]上的投影(具有最大方差),红色点是在clip_image056[1]上的投影。clip_image058的每个分量是绿色点在clip_image054[2]上的截距,clip_image060是红色点在clip_image056[2]上的截距。clip_image047[1]中的每个分量都可以看做是方向为clip_image041[3],截距为clip_image045[1]相应分量大小的向量,如那个clip_image054[3]上的橘色箭头。clip_image047[2]就得到了X在clip_image041[4]的所有投影向量,由于clip_image054[4]clip_image056[3]正交,因此clip_image062就相当于每个点的橘色箭头的加和,可想而知,得到了原始样本点。

如果舍弃了一些特征向量如clip_image056[4],那么通过clip_image064只能还原出原始点的部分信息(得到的绿色点,丢失了蓝色点在另一维度上的信息)。另外,P有个名字叫做loading矩阵,T叫做score矩阵。

3. PLSR思想及步骤

我们还需要回味一下CCA来引出PLSR。在CCA中,我们将X和Y分别投影到直线得到u和v,然后计算u和v的Pearson系数(也就是Corr(u,v)),认为相关度越大越好。形式化表示:

Maximize
clip_image066

Subject to:
clip_image068

其中a和b就是要求的投影方向。

想想CCA的缺点:对特征的处理方式比较粗糙,用的是线性回归来表示u和x的关系,u也是x在某条线上的投影,因此会存在线性回归的一些缺点。我们想把PCA的成分提取技术引入CCA,使得u和v尽可能携带样本的最主要信息。还有一个更重要的问题,CCA是寻找X和Y投影后u和v的关系,显然不能通过该关系来还原出X和Y,也就是找不到X到Y的直接映射。这也是使用CCA预测时大多配上KNN的原因。

而PLSR更加聪明,同时兼顾PCA和CCA,并且解决了X和Y的映射问题。看PCA Revisited的那张图,假设对于CCA,X的投影直线是clip_image054[5],那么CCA只考虑了X的绿色点与Y在某条直线上投影结果的相关性,丢弃了X和Y在其他维度上的信息,因此不存在X和Y的映射。而PLSR会在CCA的基础上再做一步,由于原始蓝色点可以认为是绿色点和红色点的叠加,因此先使用X的绿色点clip_image058[1]对Y做回归(clip_image070,样子有点怪,两边都乘以clip_image072就明白了,这里的Y类似于线性回归里的clip_image074clip_image058[2]类似clip_image076),然后用X的红色点clip_image060[1]对Y的剩余部分F做回归(得到clip_image078clip_image080)。这样Y就是两部分回归的叠加。当新来一个x时,投影一下得到其绿色点clip_image058[3]和红色点clip_image060[2],然后通过r就可以还原出Y,实现了X到Y的映射。当然这只是几何上的思想描述,跟下面的细节有些出入。

下面正式介绍PLSR:

1) 设X和Y都已经过标准化(包括减均值、除标准差等)。

2) 设X的第一个主成分为clip_image054[6],Y的第一个主成分为clip_image082,两者都经过了单位化。(这里的主成分并不是通过PCA得出的主成分)

3)
clip_image084
clip_image086,这一步看起来和CCA是一样的,但是这里的p和q都有主成分的性质,因此有下面4)和5)的期望条件。

4)
clip_image088
,即在主成分上的投影,我们期望是方差最大化。

5)
clip_image090
,这个跟CCA的思路一致。

6) 综合4)和5),得到优化目标clip_image092

形式化一点:

Maximize
clip_image094

Subject to:
clip_image096

看起来比CCA还要简单一些,其实不然,CCA做完一次优化问题就完了。但这里的clip_image054[7]clip_image082[1]对PLSR来说只是一个主成分,还有其他成分呢,那些信息也要计算的。

先看该优化问题的求解吧:

引入拉格朗日乘子

clip_image098

分别对clip_image100求偏导,得

clip_image102

clip_image104

从上面可以看出clip_image106(两边都乘以p或q,再利用=1的约束)

下式代入上式得到

clip_image108

上式代入下式得到

clip_image110

目标函数clip_image112,要求最大。

因此clip_image054[8]就是对称阵clip_image114的最大特征值对应的单位特征向量,clip_image082[2]就是clip_image116最大特征值对应的单位特征向量。

可见clip_image054[9]clip_image082[3]是投影方差最大和两者相关性最大上的权衡,而CCA只是相关性上最大化。

求得了clip_image054[10]clip_image082[4],即可得到

clip_image118

clip_image120

这里得到的clip_image122clip_image124类似于上图中的绿色点,只是在绿色点上找到了X和Y的关系。如果就此结束,会出现与CCA一样的不能由X到Y映射的问题。

利用我们在PCA Revisited里面的第二种表达形式,我们可以继续做下去,建立回归方程:

clip_image126

clip_image128

这里的c和d不同于p和q,但是它们之间有一定联系,待会证明。E和G是残差矩阵。

我们进行PLSR的下面几个步骤:

1)
clip_image130
,使用clip_image122[1]对Y进行回归,原因已经解释过,先利用X的主成分对Y进行回归。

2) 使用最小二乘法,计算c,d,r分别为:

clip_image132

clip_image134

clip_image136

实际上这一步计算出了各个投影向量。

clip_image054[11]clip_image138的关系如下:

clip_image140

再谈谈clip_image054[12]clip_image138[1]的关系,虽然这里将clip_image138[2]替换成clip_image054[13]可以满足等式要求和几何要求,而且clip_image054[14]就是X投影出clip_image122[2]的方向向量。但这里我们想做的是回归(让E尽可能小),因此根据最小二乘法得到的clip_image138[3]一般与clip_image054[15]不同。

3) 将剩余的E当做新的X,剩余的F当做新的Y,然后按照前面的步骤求出clip_image056[5]clip_image142,得到:

clip_image144

clip_image146

目标函数clip_image148,这个与前面一样,clip_image150clip_image142[1]分别是新的clip_image152clip_image154的最大特征值对应的单位特征向量。

4) 计算得到第二组回归系数:

clip_image156

clip_image158

这里的clip_image160和之前的clip_image122[3]是正交的,证明如下:

clip_image162

其实clip_image164和不同的clip_image166都是相互正交的。

同样clip_image041[5]和不同的clip_image168也是正交的。

clip_image170

clip_image172

clip_image174和不同的clip_image176一般不是正交的。

5) 从上一步得到回归方程:

clip_image178

clip_image180

如果还有残差矩阵的话,可以继续计算下去。

6) 如此计算下去,最终得到:

clip_image182

clip_image184

与PCA中表达式不一样的是这里的clip_image174[1]和不同的clip_image176[1]之间一般不是正交的。

其实这里不必一直计算到n,可以采用类似于PCA的截尾技术,计算到合适的r即可。关于r数目的选取可以使用交叉验证方法,这与PCA里面的问题类似。

另外,clip_image041[6]clip_image176[2]的关系是clip_image186

上面的公式如果写成矩阵形式如下:

clip_image188

clip_image190

这就是clip_image192的回归方程,其中clip_image194

在计算过程中,收集一下P和R的值即可。

7) 使用PLSR来预测。

从6)中可以发现Y其实是多个回归的叠加(其实clip_image196

抱歉!评论已关闭.