Partial least squares regression 偏最小二乘回归–潘登同学的Machine Learning笔记

文章目录

  • Partial least squares regression 偏最小二乘回归--潘登同学的Machine Learning笔记
  • 什么时候用PLS
  • 基本原理
    • 计算步骤
      • 第一步
      • 第二步
      • 第三步
      • 第四步
  • 交叉有效性检验
  • python实现

什么时候用PLS

偏最小二乘回归是集主成分分析,典型相关分析和多元线性回归分析3种分析方法的优点于一身

  • MLR的缺点: 当自变量的数量大于样本量的时候,解不出θ\thetaθ,回顾解析解
    θ=(XTX)−1XTY\theta = (X^TX)^{-1}X^TY θ=(XTX)−1XTY

    设Xn∗kX_{n*k}Xn∗k​,当k>nk>nk>n时,(XTX)k∗k(X^TX)_{k*k}(XTX)k∗k​的秩为n,不是满秩的,所以没有逆矩阵Rank(AB)≤Rank(B)Rank(AB)\leq Rank(B)Rank(AB)≤Rank(B)

  • PCA的缺点: PCA只考虑了自变量的方差,然后选取了方差最大的几个正交变量,可以用于解决共线性问题(计量),没有考虑自变量对因变量的贡献

  • PLS: 偏最小二乘回归提供一种多对多线性回归建模的方法,特别当两组变量的个数很多,且都存在多重相关性,而样本又比较少的时候。

基本原理

考虑PPP个因变量y1,y2,⋯,ypy_1,y_2,\cdots,y_py1​,y2​,⋯,yp​与mmm个自变量x1,x2,⋯,xmx_1,x_2,\cdots,x_mx1​,x2​,⋯,xm​的回归问题。

首先在自变量集中提出第一成分u1u_1u1​(u1u_1u1​是x1,…,xnx_1,\ldots,x_nx1​,…,xn​的线性组合,且尽可能多地提取原自变量集中的变异信息);同时在因变量集中也提取第一成分v1v_1v1​,并要求u1u_1u1​与v1v_1v1​相关程度达到最大。 然后建立因变量y1,…,ypy_1,\ldots,y_py1​,…,yp​与u1u_1u1​的回归,重复这个过程直到提取到足够的指定的成分。

计算步骤

先将X与YX与YX与Y标准化
A=[x11⋯x1m⋮⋮xn1⋯xnm]B=[y11⋯y1m⋮⋮yn1⋯ynm]A = \begin{bmatrix} x_{11} & \cdots & x_{1m}\\ \vdots & & \vdots \\ x_{n1} & \cdots & x_{nm} \end{bmatrix} B = \begin{bmatrix} y_{11} & \cdots & y_{1m}\\ \vdots & & \vdots \\ y_{n1} & \cdots & y_{nm} \end{bmatrix} A=⎣⎢⎡​x11​⋮xn1​​⋯⋯​x1m​⋮xnm​​⎦⎥⎤​B=⎣⎢⎡​y11​⋮yn1​​⋯⋯​y1m​⋮ynm​​⎦⎥⎤​

第一步

  1. 分别提取两组(X与YX与YX与Y变量的第一对成分,并使之相关性达到最大
    假设从两组变量中第一对成分为u1和v1u_1和v_1u1​和v1​,u1u_1u1​是自变量集X=[x1,⋯,xm]TX=[x_1,\cdots,x_m]^TX=[x1​,⋯,xm​]T的线性组合,v1v_1v1​是自变量集X=[y1,⋯,yp]TX=[y_1,\cdots,y_p]^TX=[y1​,⋯,yp​]T的线性组合
    u1=ρ1TXv1=γ1TYu_1 = \rho_1^T X \\ v_1 = \gamma_1^T Y \\ u1​=ρ1T​Xv1​=γ1T​Y

为了回归分析的需要,要求

  • u1和v1u_1和v_1u1​和v1​各自尽可能多地提取所在变量组的变异信息
  • u1和v1u_1和v_1u1​和v1​的相关程度达到最大

第二步

计算ρ1与γ1\rho_1与\gamma_1ρ1​与γ1​

  1. 最大化协方差,使得u1和v1u_1和v_1u1​和v1​的相关程度达到最大,可以用得分向量u1^和v1^\hat{u_1}和\hat{v_1}u1​^​和v1​^​的內积来计算
    max⁡<u1^,v1^>=ρ1TABγ1s.t.{ρ1Tρ1=1γ1Tγ1=1\max <\hat{u_1},\hat{v_1}> = \rho_1^T A B \gamma_1 \\ s.t. \begin{cases} \rho_1^T \rho_1 = 1 \\ \gamma_1^T \gamma_1 = 1 \\ \end{cases} max<u1​^​,v1​^​>=ρ1T​ABγ1​s.t.{ρ1T​ρ1​=1γ1T​γ1​=1​

  2. 采用Lagrange乘数法,问题化为求单位向量ρ1和γ1\rho_1和\gamma_1ρ1​和γ1​,使θ1=ρ1TABγ1\theta_1 = \rho_1^T A B \gamma_1θ1​=ρ1T​ABγ1​达到最大,问题求解只需计算M=ATBBTAM=A^TBB^TAM=ATBBTA的特征值与特征向量,且MMM的最大特征值为θ12\theta_1^2θ12​,相应的特征向量就是所要求解的ρ1\rho_1ρ1​,进而也能得到γ1\gamma_1γ1​
    γ1=1θ1BTAρ1\gamma_1 = \frac{1}{\theta_1}B^TA\rho_1 γ1​=θ1​1​BTAρ1​

第三步

由两组变量集的标准化观察数据矩阵X和YX和YX和Y,可以计算第一对成分的得分向量,记为u1^和v1^\hat{u_1}和\hat{v_1}u1​^​和v1​^​
u1^=Aρ1v1^=Bγ1\hat{u_1} = A \rho_1 \\ \hat{v_1} = B \gamma_1 \\ u1​^​=Aρ1​v1​^​=Bγ1​

  1. 建立y1,⋯,ypy_1,\cdots,y_py1​,⋯,yp​对u1u_1u1​的回归及x1,⋯,xmx_1,\cdots,x_mx1​,⋯,xm​对u1u_1u1​的回归,假定回归模型
    {A=u1^σ1T+A1B=u1^τ1T+B1\begin{cases} A = \hat{u_1}\sigma_1^{T} + A_1 \\ B = \hat{u_1}\tau_1^{T} + B_1 \\ \end{cases} {A=u1​^​σ1T​+A1​B=u1​^​τ1T​+B1​​
    其中,σ1T=[σ1,…,σm],τ1T=[τ1,…,τm]\sigma_1^{T} = [\sigma_{1},\ldots,\sigma_{m}],\tau_1^{T} = [\tau_{1},\ldots,\tau_{m}]σ1T​=[σ1​,…,σm​],τ1T​=[τ1​,…,τm​]分别是多对一回归模型中的参数向量,A1,B1A_1,B_1A1​,B1​是残差阵

  2. 回归系数向量σ1,τ1\sigma_1,\tau_1σ1​,τ1​的最小二乘估计为
    {σ1=ATu1^∣∣u1^∣∣2τ1=BTu1^∣∣u1^∣∣2\begin{cases} \sigma_1 = \frac{A^T\hat{u_1}}{||\hat{u_1}||^2} \\ \tau_1 = \frac{B^T\hat{u_1}}{||\hat{u_1}||^2} \\ \end{cases} {σ1​=∣∣u1​^​∣∣2ATu1​^​​τ1​=∣∣u1​^​∣∣2BTu1​^​​​

  3. 用残差阵A1和B1A_1和B_1A1​和B1​代替A,BA,BA,B,重复以上步骤,直到残差阵中元素的绝对值近似为0,每进行一次得到一个σt和τt\sigma_t和\tau_tσt​和τt​,

第四步

重复上面的步骤,得到rrr个成分
{A=u1^σ1T+⋯+ur^σrT+ArB=u1^τ1T+⋯+ur^τrT+Br\begin{cases} A = \hat{u_1}\sigma_1^{T} + \cdots + \hat{u_r}\sigma_r^{T} + A_r \\ B = \hat{u_1}\tau_1^{T} + \cdots + \hat{u_r}\tau_r^{T} + B_r \\ \end{cases} {A=u1​^​σ1T​+⋯+ur​^​σrT​+Ar​B=u1​^​τ1T​+⋯+ur​^​τrT​+Br​​

将u1=ρ1TXu_1 = \rho_1^T Xu1​=ρ1T​X代入Y=u1^τ1T+⋯+ur^τrTY=\hat{u_1}\tau_1^{T} + \cdots + \hat{u_r}\tau_r^{T}Y=u1​^​τ1T​+⋯+ur​^​τrT​,即得PPP个因变量的偏最小二乘回归方程式
yj=cj1x1+…+cjmxm,j=1,2,…,py_j = c_{j1}x_1 + \ldots + c_{jm}x_m, j= 1,2,\ldots,p yj​=cj1​x1​+…+cjm​xm​,j=1,2,…,p

交叉有效性检验

应该提取多个个成分,可以使用交叉有效性检验

每次舍去第iii个观察数据,对余下的n−1n-1n−1个观测数据用偏最小二乘回归方法,并考虑抽取h(h≤r)h(h\leq r)h(h≤r)个肠粉后拟合的回归式,然后把舍去的自变量组第jjj个观测数据代入所拟合的回归方程式,得到yj(j=1,2,⋯,p)y_j(j=1,2,\cdots,p)yj​(j=1,2,⋯,p)在第iii观测点上的预测值为b(i)j^(h)\hat{b_{(i)j}}(h)b(i)j​^​(h)

对i=1,2,…,ni=1,2,\ldots,ni=1,2,…,n重复以上的验证,即得抽取hhh个成分时第jjj个因变量yj(j=1,2,…,p)y_j(j=1,2,\ldots,p)yj​(j=1,2,…,p)的预测误差平方和为
PRESSj(h)=∑i=1n(b(i)j−b^(i)j(h))2,j=1,2,…,pPRESS_j(h) = \sum_{i=1}^n(b_{(i)j}-\hat{b}_{(i)j}(h))^2,j=1,2,\ldots,p PRESSj​(h)=i=1∑n​(b(i)j​−b^(i)j​(h))2,j=1,2,…,p
YYY的预测误差平方和为
PRESS(h)=∑i=1pPRESSj(h)PRESS(h) = \sum_{i=1}^pPRESS_j(h) PRESS(h)=i=1∑p​PRESSj​(h)

另外,再采用所有的样本点,拟合含hhh个成分的回归方程。这时,记第iii个样本点的预测值为b^ij(h)\hat{b}_{ij}(h)b^ij​(h),则可以定义yjy_jyj​的误差平方和为
SSj(h)=∑i=1n(bij−b^ij(h))2SS_j(h) = \sum_{i=1}^n(b_{ij}-\hat{b}_{ij}(h))^2 SSj​(h)=i=1∑n​(bij​−b^ij​(h))2
定义 hhh成分的误差平方和
SS(h)=∑j=1pSSj(h)SS(h) = \sum_{j=1}^p SS_j(h) SS(h)=j=1∑p​SSj​(h)

当PRESS(h)PRESS(h)PRESS(h)达到最小值时,对应的hhh即为所求的成分lll个数。通常,总有PRESS(h)>SS(h)PRESS(h) > SS(h)PRESS(h)>SS(h),而SS(h)<SS(h−1)SS(h) < SS(h-1)SS(h)<SS(h−1)。因此在提取成分时,总是希望PRESS(h)SS(h−1)\frac{PRESS(h)}{SS(h-1)}SS(h−1)PRESS(h)​越小于好,一般可以设定阈值为0.05,判定规则为,当
PRESS(h)SS(h−1)≤(1−0.05)2\frac{PRESS(h)}{SS(h-1)} \leq (1-0.05)^2 SS(h−1)PRESS(h)​≤(1−0.05)2
时,新加成分对回归改善是有帮助的

因此,可以定义交叉有效性
Qh2=1−PRESS(h)SS(h−1)Q_h^2 = 1 - \frac{PRESS(h)}{SS(h-1)} Qh2​=1−SS(h−1)PRESS(h)​
在每一步计算结束前,计算交叉有效性,在第hhh步有Qh2^<1−0.952\hat{Q_h^2} < 1 - 0.95^2Qh2​^​<1−0.952,则模型到达精度,可以停止提取成分

python实现

from sklearn.cross_decomposition import PLSRegression
pls = PLSRegression(n_compoents=k)
pls.fit(X,Y)
y_pred = pls.predict(X_test)

偏最小二乘回归分析PLS相关推荐

  1. python pls_偏最小二乘(pls)回归分析

    姓名:车文扬 学号:16020199006 转载至:https://blog.csdn.net/revitalise/article/details/82530693,有删节 [嵌牛导读]:偏最小二乘 ...

  2. xgboost回归预测模型_偏最小二乘回归分析法 从预测角度对所建立的回归模型进行比较...

    在实际问题中,经常遇到需要研究两组多重相关变量间的相互依赖关系,并研究用一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量), 除了最小二乘准则下的经典多元线性回归分析(MLR ...

  3. 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS

    交叉分解(Cross decomposition).典型关联分析(Canonical Correlation Analysis,CCA).偏最小二乘回归PLS 目录 交叉分解.典型关联分析(Canon ...

  4. MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  5. 偏最小二乘回归分析原理详解和案例分析实例

    偏最小二乘回归分析原理详解 背景 偏最小二乘回归分析 Partial least squares regression analysis 基本思想 建模步骤 步骤一:分别提取两变量组的第一对成分,并使 ...

  6. 傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  7. 偏最小二乘(pls)回归分析 matlab

    偏最小二乘用于查找两个矩阵(X和Y)的基本关系,即一个在这两个空间对协方差结构建模的隐变量方法.偏最小二乘模型将试图找到X空间的多维方向来解释Y空间方差最大的多维方向.偏最小二乘回归特别适合当预测矩阵 ...

  8. 【计量模型整理】偏最小二乘回归 PLS

    partial least square PLS 原理 与MLS.PCR.MRA比较 适用情况 数学推导与软件实现 参考文献 原理 在影响因变量的大量的因素中,会存在隐形的影响因素但却具有很强的解释力 ...

  9. python偏最小二乘法回归分析_【数学建模】偏最小二乘回归分析(PLSR)

    PLSR的基本原理与推导,我在这篇博客中有讲过. 0. 偏最小二乘回归集成了多元线性回归.主成分分析和典型相关分析的优点,在建模中是一个更好的选择,并且MATLAB提供了完整的实现,应用时主要的问题是 ...

最新文章

  1. 最近的学习---一句话收获(备查用)(3)
  2. 如何开发一个Node脚手架
  3. 11 个 Visual Studio 代码性能分析工具
  4. 9本java程序员必读的书(附下载地址)
  5. vb连接mysql未发现_vb连接MySQL遇到的问题解决方法
  6. vmware克隆linux虚拟机网卡无法上网的解决办法
  7. 《spring-boot学习》-01-初体验
  8. count(*),count(1)和count(字段)的区别
  9. Struts2项目实战 微云盘(五):核心功能实现
  10. 电脑屏幕键盘关闭方法
  11. android9 apk自动安装功能,Android app自动更新总结(已适配9.0)
  12. 新浪微博与微信公众号开发总结
  13. 平凡的世界 田晓霞的日记 摘抄
  14. 不死僵尸木马lpt7.asp.asp与lpt5.cnzzz.asp的删除方法
  15. mac安装phpunit
  16. python 比对匹配_用Python从头实现Needleman-Wunsch序列比对算法
  17. 小小的企业邮箱,大大的渠道天地 | 企业服务渠道商系列谈
  18. Dava基础Day17
  19. python把中文文档变为拼音
  20. JATG篇(1)——FT2232H入门

热门文章

  1. 什么是小间距led显示屏
  2. SQL注入中的报错注入,updatexml(1,concat(0x7e,database(),0x7e),1)
  3. 动态规划之TSP(Travel Salesman Problem)算法
  4. CS目前有哪些热门的研究方向和应用?
  5. 从来不敷面膜的人_女人不敷面膜的危害
  6. 如何在Windows系统搭建Node.js环境
  7. 面试必问!!彻底搞清楚 tcp 的三次握手四次挥手
  8. sedona-技术框架
  9. Google Geocoding API---地理编码与反向地理编码
  10. 高数焦虑?这个假期,暗暗发力,2023年“兔”飞猛进