偏最小二乘回归分析PLS
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⎦⎥⎤
第一步
- 分别提取两组(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=ρ1TXv1=γ1TY
为了回归分析的需要,要求
- u1和v1u_1和v_1u1和v1各自尽可能多地提取所在变量组的变异信息
- u1和v1u_1和v_1u1和v1的相关程度达到最大
第二步
计算ρ1与γ1\rho_1与\gamma_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^>=ρ1TABγ1s.t.{ρ1Tρ1=1γ1Tγ1=1采用Lagrange乘数法,问题化为求单位向量ρ1和γ1\rho_1和\gamma_1ρ1和γ1,使θ1=ρ1TABγ1\theta_1 = \rho_1^T A B \gamma_1θ1=ρ1TABγ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=θ11BTAρ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ρ1v1^=Bγ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+A1B=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是残差阵回归系数向量σ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^用残差阵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+ArB=u1^τ1T+⋯+ur^τrT+Br
将u1=ρ1TXu_1 = \rho_1^T Xu1=ρ1TX代入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=cj1x1+…+cjmxm,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∑pPRESSj(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∑pSSj(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相关推荐
- python pls_偏最小二乘(pls)回归分析
姓名:车文扬 学号:16020199006 转载至:https://blog.csdn.net/revitalise/article/details/82530693,有删节 [嵌牛导读]:偏最小二乘 ...
- xgboost回归预测模型_偏最小二乘回归分析法 从预测角度对所建立的回归模型进行比较...
在实际问题中,经常遇到需要研究两组多重相关变量间的相互依赖关系,并研究用一组变量(常称为自变量或预测变量)去预测另一组变量(常称为因变量或响应变量), 除了最小二乘准则下的经典多元线性回归分析(MLR ...
- 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS
交叉分解(Cross decomposition).典型关联分析(Canonical Correlation Analysis,CCA).偏最小二乘回归PLS 目录 交叉分解.典型关联分析(Canon ...
- MATLAB实现偏最小二乘回归PLS
这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...
- 偏最小二乘回归分析原理详解和案例分析实例
偏最小二乘回归分析原理详解 背景 偏最小二乘回归分析 Partial least squares regression analysis 基本思想 建模步骤 步骤一:分别提取两变量组的第一对成分,并使 ...
- 傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS
这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...
- 偏最小二乘(pls)回归分析 matlab
偏最小二乘用于查找两个矩阵(X和Y)的基本关系,即一个在这两个空间对协方差结构建模的隐变量方法.偏最小二乘模型将试图找到X空间的多维方向来解释Y空间方差最大的多维方向.偏最小二乘回归特别适合当预测矩阵 ...
- 【计量模型整理】偏最小二乘回归 PLS
partial least square PLS 原理 与MLS.PCR.MRA比较 适用情况 数学推导与软件实现 参考文献 原理 在影响因变量的大量的因素中,会存在隐形的影响因素但却具有很强的解释力 ...
- python偏最小二乘法回归分析_【数学建模】偏最小二乘回归分析(PLSR)
PLSR的基本原理与推导,我在这篇博客中有讲过. 0. 偏最小二乘回归集成了多元线性回归.主成分分析和典型相关分析的优点,在建模中是一个更好的选择,并且MATLAB提供了完整的实现,应用时主要的问题是 ...
最新文章
- 最近的学习---一句话收获(备查用)(3)
- 如何开发一个Node脚手架
- 11 个 Visual Studio 代码性能分析工具
- 9本java程序员必读的书(附下载地址)
- vb连接mysql未发现_vb连接MySQL遇到的问题解决方法
- vmware克隆linux虚拟机网卡无法上网的解决办法
- 《spring-boot学习》-01-初体验
- count(*),count(1)和count(字段)的区别
- Struts2项目实战 微云盘(五):核心功能实现
- 电脑屏幕键盘关闭方法
- android9 apk自动安装功能,Android app自动更新总结(已适配9.0)
- 新浪微博与微信公众号开发总结
- 平凡的世界 田晓霞的日记 摘抄
- 不死僵尸木马lpt7.asp.asp与lpt5.cnzzz.asp的删除方法
- mac安装phpunit
- python 比对匹配_用Python从头实现Needleman-Wunsch序列比对算法
- 小小的企业邮箱,大大的渠道天地 | 企业服务渠道商系列谈
- Dava基础Day17
- python把中文文档变为拼音
- JATG篇(1)——FT2232H入门
热门文章
- 什么是小间距led显示屏
- SQL注入中的报错注入,updatexml(1,concat(0x7e,database(),0x7e),1)
- 动态规划之TSP(Travel Salesman Problem)算法
- CS目前有哪些热门的研究方向和应用?
- 从来不敷面膜的人_女人不敷面膜的危害
- 如何在Windows系统搭建Node.js环境
- 面试必问!!彻底搞清楚 tcp 的三次握手四次挥手
- sedona-技术框架
- Google Geocoding API---地理编码与反向地理编码
- 高数焦虑?这个假期,暗暗发力,2023年“兔”飞猛进