偏序最小二乘回归

1. 问题

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

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

2. PCA Revisited

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

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

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

PCA的一种表示形式:

     

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

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

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

     

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

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

 

PCA的另一种表示:

      (假设X秩为n)

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

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

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

     

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

     

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

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

3. PLSR思想及步骤

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


Maximize 

Subject to: 

     其中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的投影直线是,那么CCA只考虑了X的绿色点与Y在某条直线上投影结果的相关性,丢弃了X和Y在其他维度上的信息,因此不存在X和Y的映射。而PLSR会在CCA的基础上再做一步,由于原始蓝色点可以认为是绿色点和红色点的叠加,因此先使用X的绿色点对Y做回归(,样子有点怪,两边都乘以就明白了,这里的Y类似于线性回归里的类似),然后用X的红色点对Y的剩余部分F做回归(得到)。这样Y就是两部分回归的叠加。当新来一个x时,投影一下得到其绿色点和红色点,然后通过r就可以还原出Y,实现了X到Y的映射。当然这只是几何上的思想描述,跟下面的细节有些出入。

     下面正式介绍PLSR:

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

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

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

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

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

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

     形式化一点:


Maximize 

Subject to: 

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

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

     引入拉格朗日乘子

     

     分别对求偏导,得

     

     

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

     下式代入上式得到

     

     上式代入下式得到

     

     目标函数,要求最大。

     因此就是对称阵的最大特征值对应的单位特征向量,就是最大特征值对应的单位特征向量。

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

     求得了,即可得到

     

     

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

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

     

     

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

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

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

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

          

          

          

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

          的关系如下:

          

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

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

          

          

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

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

          

          

          这里的和之前的是正交的,证明如下:

          

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

          同样和不同的也是正交的。

          

               

          但和不同的一般不是正交的。

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

          

          

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

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

          

          

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

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

          另外,的关系是

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

          

          

          这就是的回归方程,其中

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

     7) 使用PLSR来预测。

          从6)中可以发现Y其实是多个回归的叠加(其实已经回归出Y的最主要信息)。我们在计算模型的过程中,得到了p和r。那么新来一个x,首先计算u(这里的u变成了实数,而不是向量了),得到

          

          然后代入Y的式子即可求出预测的y向量,或者直接代入

    8) 至此,PLSR的主要步骤结束。

4. PLSR相关问题

     1) 其实不需要计算v和q,因为我们使用u去做Y的回归时认为了,其中c是常数。之所以这样是因为前面提到过的Y可以首先在X的主要成分上做回归,然后将Y的残差矩阵在X的残差矩阵的主要成分上做回归。最后X的各个成分回归之和就是Y。

     2) 一般使用的PLSR求解方法是迭代化的求解方法,称之为NIPALS,还有简化方法SIMPLS,这些方法在一般论文或参考文献中提供的网址里都有,这里就不再贴了。

     3) PLSR里面还有很多高级话题,比如非线性的Kernel PLSR,异常值检测,带有缺失值的处理方法,参数选择,数据转换,扩展的层次化模型等等。可以参考更多的论文有针对性的研究。还有PLSR的几个例子在参考文件里面有,不过都不详细。

5. 一些感悟

     本文试图将PCA、CCA、PLSR综合起来对比、概述和讨论,不免对符号的使用稍微都点混乱,思路也有穿插混淆。还是以推导出的公式为主进行理解吧,另外文中个人理解的内容难免有错,望不吝赐教。

     之前也陆陆续续地关注了一些概率图模型和时间序列分析,以后可能会转向介绍这两方面的内容,也会穿插一些其他的内容。说实话,自学挺吃力的,尤其对我这样一个不是专业搞ML的人来说,也需要花大量时间。感叹国外的资料多,lecture多,视频多,可惜因为我这的网速和GFW原因,看不了教学视频,真是遗憾。

6. 参考文献:

     1. PARTIAL LEAST-SQUARES REGRESSION: A TUTORIAL. Paul Geladi and Bruce R. Kowalski

     2. 王惠文-偏最小二乘回归方法及应用

     3. Partial Least Squares (PLS) Regression.

     4. A Beginner's Guide to Partial Least Squares Analysis

     5. Nonlinear Partial Least Squares: An Overview

     6. http://www.statsoft.com/textbook/partial-least-squares/

     7. Canonical Correlation a Tutorial

     8. Pattern Recognition And Machine Learning

时间: 2024-09-26 20:06:36

偏序最小二乘回归的相关文章

5、spss做加权最小二乘回归及岭回归

上一节我们讲到一般多元线性回归的操作方法.本节要介绍的是多元线性回归的其他几种情况.包括适用于含有加权变量的加权最小二乘回归方程等.然后继续讨论上一节中没有讨论完毕的如何解决多重共线性这个问题. 讲加权最小二乘回归之前,我们首先还是举个例子.假设我们想考察全国三十一个省的某种疾病的发病率和每个省的面积,平均气温等的关系,那么我们知道,这三十一个省的人口肯定是不同的.而且差距还蛮大.并且最重要的,我们知道,发病率的高低很可能和人口的多少有关系(考虑传染性,人口密度什么的),那么这个时候我们直接用最

Spark机器学习5·回归模型(pyspark)

Spark机器学习 分类模型的预测目标是:类别编号 回归模型的预测目标是:实数变量 回归模型种类 线性模型 最小二乘回归模型 应用L2正则化时--岭回归(ridge regression) 应用L1正则化时--LASSO(Least Absolute Shrinkage and Selection Operator) 决策树 不纯度度量方法:方差 0 准备数据 archive.ics.uci.edu/ml/machine-learning-databases/00275/Bike-Sharing

需要避免的MYSQL客户机程序设计错误

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

获取MYSQL表信息

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

MYSQL图像数据的处理

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

对MYSQL查询中有疑问的数据进行编码

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

在MYSQL结果集上执行计算、

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

AI人工智能专业词汇集

作为最早关注人工智能技术的媒体,机器之心在编译国外技术博客.论文.专家观点等内容上已经积累了超过两年多的经验.期间,从无到有,机器之心的编译团队一直在积累专业词汇.虽然有很多的文章因为专业性我们没能尽善尽美的编译为中文呈现给大家,但我们一直在进步.一直在积累.一直在提高自己的专业性. 两年来,机器之心编译团队整理过翻译词汇对照表「红宝书」,编辑个人也整理过类似的词典.而我们也从机器之心读者留言中发现,有些人工智能专业词汇没有统一的翻译标准,这可能是因地区.跨专业等等原因造成的.举个例子,Deep

多重共线性问题的几种解决方法

    在多元线性回归模型经典假设中,其重要假定之一是回归模型的解释变量之间不存在线性关系,也就是说,解释变量X1,X2,--,Xk中的任何一个都不能是其他解释变量的线性组合.如果违背这一假定,即线性回归模型中某一个解释变量与其他解释变量间存在线性关系,就称线性回归模型中存在多重共线性.多重共线性违背了解释变量间不相关的古典假设,将给普通最小二乘法带来严重后果.     所谓多重共线性是指线性回归模型的解释变量之间由于存在精确相关关系或者高度相关关系而使模型评估失真或者不准确.这里,我们总结了8