PLS1和lanczos的联系

本文详细阐述了NIPALS算法的经典流程,包括权重、得分和加载的计算过程,以及通过迭代计算权值的方法,深入探讨了PLS1的系数计算原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经典的NIPALS流程如下
for a=1:A,a=1: A, \quada=1:A, (A-the number of components to be extracted)

  1. va=Xa−1ty\mathbf{v}_{a}=\mathbf{X}_{a-1}^{t} \mathbf{y}va=Xa1ty
  2. wa=va/∥va∥\mathbf{w}_{a}=\mathbf{v}_{a} /\left\|\mathbf{v}_{a}\right\|wa=va/va
  3. τa=Xa−1wa\boldsymbol{\tau}_{a}=\mathbf{X}_{a-1} \mathbf{w}_{a}τa=Xa1wa
  4. ta=τa/∥τa∥\mathbf{t}_{a}=\boldsymbol{\tau}_{a} /\left\|\boldsymbol{\tau}_{a}\right\|ta=τa/τa
  5. pa=Xa−1tta\mathbf{p}_{a}=\mathbf{X}_{a-1}^{t} \mathbf{t}_{a}pa=Xa1tta
  6. xa=Xa−1−tapat\mathbf{x}_{a}=\mathbf{X}_{a-1}-\mathbf{t}_{a} \mathbf{p}_{a}^{t}xa=Xa1tapat (the deflation step)
  7. qa=tatyq_{a}=\mathbf{t}_{a}^{t} \mathbf{y}qa=taty

end
T=[t1t2…tA]\mathbf{T}=\left[\mathbf{t}_{1} \mathbf{t}_{2} \ldots \mathbf{t}_{A}\right]T=[t1t2tA] (the orthonormal scores)
W=[w1w2…wA]\mathbf{W}=\left[\mathbf{w}_{1} \mathbf{w}_{2} \ldots \mathbf{w}_{A}\right]W=[w1w2wA] (the orthonormal weights)
P=[p1p2…pA]\mathbf{P}=\left[\mathbf{p}_{1} \mathbf{p}_{2} \ldots \mathbf{p}_{A}\right]P=[p1p2pA] (the matrix of X\mathbf{X}X -loadings)
qt=[q1q2…qA]\mathbf{q}^{t}=\left[q_{1} q_{2} \ldots q_{A}\right]qt=[q1q2qA] (the vector of y\mathbf{y}y -loadings)
PLS1的系数计算
y=Tqy = Tqy=Tq我们希望得到T如何用X0X_0X0表达
假设有T=X0W∗T = X_0W^*T=X0W,显然,wa∗w_a^*wa可以和w1,⋯ ,wa−1{w_1,\cdots,w_{a-1}}w1,,wa1关于X0TX0X_0^TX_0X0TX0共轭得到
观察以下常用的计算公式
βPLS=W(PtW)−1q\boldsymbol{\beta}_{PLS}=\mathbf{W}\left(\mathbf{P}^{t} \mathbf{W}\right)^{-1} \mathbf{q}βPLS=W(PtW)1q

可以得出
W∗=W(PtW)−1\mathbf{W^*}=\mathbf{W}\left(\mathbf{P}^{t} \mathbf{W}\right)^{-1}W=W(PtW)1

v\mathbf{v}v或者w\mathbf{w}w两两正交,但并非关于X0TX0\mathbf{X_0^TX_0}X0TX0共轭,即X0wi\mathbf{X_0w_i}X0wi之间并不存在正交关系。

τa∗=X0wa\boldsymbol{\tau}_{a}^*=\mathbf{X}_{0} \mathbf{w}_{a}τa=X0waτa∗\boldsymbol{\tau}_{a}^*τa 需要与span{t1,⋯ ,ta−1}span\{t_1,\cdots,t_{a-1}\}span{t1,,ta1}经过一个 Gram–Schmidt 正交化得到 tat_{a}ta

yTXa=yTXa−1−yTtapaT→va+1T=vaT−vaTwapaT/∣∣τa∣∣→\mathbf{y^TX}_a =\mathbf{y^TX}_{a-1}-\mathbf{y^Tt}_a\mathbf{p}_a^T\rightarrow \mathbf{v}_{a+1}^T =\mathbf{v}_{a}^T-\mathbf{v}_{a}^Tw_ap_a^T/||\boldsymbol{\tau}_{a}|| \rightarrowyTXa=yTXa1yTtapaTva+1T=vaTvaTwapaT/τa
va+1=va−∣∣va∣∣∣∣τa∣∣pav_{a+1} =v_{a} -\frac{||v_a||}{||\tau_a||}p_ava+1=vaτavapa

我们可以发现,不用再去计算残差,只需要去迭代就能计算出权值

做一些简单的变换可以得到
pa=∥τa∥(wa−∥va+1∥∥va∥wa+1),a=1,…,A<m \mathbf{p}_{a}=\left\|\boldsymbol{\tau}_{a}\right\|\left(\mathbf{w}_{a}-\frac{\left\|\mathbf{v}_{a+1}\right\|}{\left\|\mathbf{v}_{a}\right\|} \mathbf{w}_{a+1}\right), a=1, \ldots, A<m pa=τa(wavava+1wa+1),a=1,,A<m
P=W+B2 \mathbf{P}=\mathbf{W}_{+} \mathbf{B}_{2} P=W+B2
W+=[Wwa+1]W_{+} = [W w_{a+1}]W+=[Wwa+1]
在这里插入图片描述

在这里插入图片描述

W∗(PTW)=WW^*(P^TW) = WW(PTW)=W

由此,得到W∗→WW^*\rightarrow WWW,是基于双对角的lanczos正交化方法

参考: The geometry of PLS1 explained properly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值