您的位置:首页 > 其它

偏最小二乘回归(PLSR)算法原理

2015-09-24 19:24 507 查看

1、问题的提出

  在跨媒体检索领域中,CCA(Canonical correlation analysis,典型关联分析)是应用最为广泛的算法之一。CCA可以把两种媒体的原始特征空间映射映射到相关的两个特征子空间中,从而实现两个属于不同媒体的样本之间的相似性的度量,这也是CCA实现跨媒体检索的理论基础。

  但是CCA也有其局限性,其中之一就是对特征的处理比较粗糙,不妨假设来自两种媒体的一组训练样本对的原始特征矩阵为X和Y,则CCA只是以映射后特征相关性最大为原则把XX和YY分别映射为X1X_1和Y1Y_1,而在XX(YY)映射到X1X_1(Y1Y_1)的过程中很可能会丢失原始特征矩阵XX(YY)中的一些信息。此外,CCA只是寻找投影后的X1X_1和Y1Y_1的关系,而不能通过该关系还原出XX和YY。

  为了解决上面提到的CCA算法的一些缺点,可以使用PLSR(Partial Least Squares Regression,最小二乘回归)算法。PLSR是一种多因变量Y对多自变量X的回归建模方法,该算法在建立回归的过程中,既考虑了尽量提取Y和X中的主成分(PCA—Principal Component Analysis,主成分分析的思想),又考虑了使分别从X和Y提取出的主成分之间的相关性最大化(CCA的思想)。简单的说,PLSR是PCA、CCA和多元线性回归这三种基本算法组合的产物。下面将进一步探讨PLSR的算法原理。

2、算法实现

  设原始特征数据X0X_0为Nxm维矩阵,Y0Y_0为Nxn维矩阵,即共有N个样本对,X0X_0中样本特征为m维,Y0Y_0中样本特征为n维。而X和Y是原始数据经过标准化(减均值、除以标准差等)之后生成的数据。设X和Y的第一个主成分轴向量分别为w1w_1(m x 1维)和c1c_1(n x 1维)(两者均为单位向量,且两者不是由PCA求出的主轴,目前都只是变量,具体的值要到后面求解),则由w1w_1和c1c_1可以表示出X和Y的第一对主成分t1t_1和u1u_1,其中t1=X∗w1,u1=Y∗c1t_1 = X*w_1, u_1 = Y*c_1。

  根据上面的假设,CCA的求解思想是使t1t_1和u1u_1之间的相关性最大化,即Corr(t1,u1)→maxCorr(t_1,u_1) \rightarrow max;而PCA的求解思想是分别使t1t_1和u1u_1各自的方差最大,即Var(t1)→max,Var(u1)→maxVar(t_1) \rightarrow max, Var(u_1) \rightarrow max 。综合上面两种思想,即PLSR的求解思想,即Cov(t1,u1)=Var(t1)Var(u1)−−−−−−−−−−−−−√Corr(t1,u1)→maxCov(t_1,u_1)=\sqrt{Var(t_1)Var(u_1)}Corr(t_1,u_1) \rightarrow max 。数学上可以形式化如下:

  

  Maximize<Xw1,Yc1>Maximize , Subject to : ||w1||=1,||c1||=1||w_1||=1,||c_1||=1

  可以通过引入拉格朗日乘子的方法求出w1,c1w_1,c_1,求解细节参考博客“偏最小二乘法回归”[1],最后可解得,w1w_1是对称矩阵XTYYTXX^TYY^TX的最大特征值对应的特征向量,c1c_1是YTXXTYY^TXX^TY的最大特征值对应的特征向量。在求出了w1,c1w_1,c_1后,可以求得X,YX,Y的第一对相关的主成分t1,u1t_1,u_1如下:

  t1=Xw1,u1=Yc1t_1=Xw_1,u_1=Yc_1

  根据主成分回归思想可以把X,YX,Y分别对它们的主成分t1,u1t_1,u_1进行回归建模如下:

  X=t1pT1+EX = t_1p_1^T + E

  Y=u1qT1+GY = u_1q_1^T + G

  

  这里的p1,q1p_1,q_1不同于w1,c1w_1,c_1,但它们之间有一定的关系,而E,GE,G为残差矩阵。因为直接用上面两个式子还是无法建立X,YX,Y之间的关系,所以在此利用t1,u1t_1,u_1之间具有相关性这一情况把YY改为对XX的主成分t1t_1进行回归建模如下:

  

  Y=t1rT1+FY=t_1r_1^T + F

  

  对于上面三个回归方程,可以用最小二乘法计算出p1,q1,r1p_1,q_1,r_1如下:

  

  p1=XTt1||t1||2p_1=\frac{X^Tt_1}{||t_1||^2}

  

  q1=YTu1||u1||2q_1=\frac{Y^Tu_1}{||u_1||^2}

  

  r1=YTt1||t1||2r_1=\frac{Y^Tt_1}{||t_1||^2}

  

  从上面求出的结果可以推导出w1,p1w_1,p_1之间的关系为:

  

  wT1p1=wT1XTt1||t1||2=tT1t1||t1||2=1w_1^Tp_1 = w_1^T\frac{X^Tt_1}{||t_1||^2}=\frac{t_1^Tt_1}{||t_1||^2}=1

  

  其中w1w_1是XX投影出t1t_1的方向向量,而p1p_1在回归思想(使残差E尽可能小)下根据最小二乘法求出的,两者之间一般不是相同的关系。之后将XX中主成分t1t_1不能解释的残差部分EE作为新的XX,YY中主成分t1t_1不能解释的残差部分FF作为新的YY,按照前面的方法进行回归,循环往复,直到残差FF达到精度要求,或者主成分数量已经达到上限(初始XX的秩),算法结束。设最后共有k个主成分,则一系列向量可表示为w1,w2,...,wk;c1,c2,...,ck;t1,t2,...,tk;u1,u2,...,uk;r1,r2,...rkw_1,w_2,...,w_k;c_1,c_2,...,c_k;t_1,t_2,...,t_k;u_1,u_2,...,u_k;r_1,r_2,...r_k,其中下标不同的ti,tjt_i,t_j是相互正交的,wi,wjw_i,w_j也是正交的,但pi,pjp_i,p_j一般不是正交的(这也是与PCA的表达式中不同的地方)。最终可将原始X,YX,Y表示为:

  

  X=t1pT1+t2pT2+...+tkpTk+EX=t_1p_1^T+t_2p_2^T+...+t_kp_k^T+E

  Y=t1rT1+t2rT2+...+tkrTk+FY=t_1r_1^T+t_2r_2^T+...+t_kr_k^T+F

  

  利用wTitj=1(i=j),wTitj=0(i≠j)w_i^Tt_j=1(i=j),w_i^Tt_j=0(i\neq j)的关系可以把上面的公式写成矩阵的形式如下:

  

  X=TPT+EX = TP^T+E

  Y=TRT+F=XWRT+F=XA+FY=TR^T+F=XWR^T+F=XA+F,即X→YX\rightarrow Y的回归方程,其中A=WRTA=WR^T

  

  在算法过程中把计算得出的W,RW,R的值收集好就可以利用PLSR进行预测,即对于新输入的一条数据xx,首先利用WW计算各个主成分,即t1=xTw1,t2=xTw2,...,tk=xTwkt_1=x^Tw_1,t_2=x^Tw_2,...,t_k=x^Tw_k,然后代入y=t1rT1+t2rT2+...+tkrTky=t_1r_1^T+t_2r_2^T+...+t_kr_k^T即可求出向量yy的预测值,或直接代入yT=xTAy^T=x^TA进行求解。

 以上便是PLSR算法实现的主要步骤。

参考文献:

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

[2]《Overview and Recent Advances in Partial Least Squares》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: