PLS简介

PLS 即 Partial Least Squares 偏最小二乘法。

简介

  • 适用特点:数据量小、数据维数高、数据多重共线性

  • 为什么?考虑回归问题 $y=\alpha +\beta X+\epsilon$ ,那么最小二乘回归(最大化X、y协方差)

    即需要 $X’X$ 可逆满秩,$X$ 的样本(行数)需要多于特征(列数),且特征之间没有线性相关性(共线性)。

  • 对比:

    • PCA:

    • 使用SVD求:

    • 但是PCA没有利用预测信息即 $y$ ,有些PC和预测没有关系。

  • PLS模型:

  • 其中 $X$ 为 $n×m$ 观测矩阵,$Y$ 为 $n×p$ 响应矩阵。$T/U$ 为 $n×l$ 的得分矩阵(或成分矩阵),$P/Q$ 为 $m/n ×l$ 的正交载荷矩阵,$E/F$ 为残差。

  • 要求:$\max \text{Cov}(T,U)$ 。类似PCR,观测矩阵被分解为得分矩阵和载荷矩阵的外积,但是PCR中 $X=TP’, T=XW, P=W$ 即权值和载荷相同,这一点不同于PLS( PLS1中 $w=X’y$ ,正比于X和y的协方差)。


  • PLS-CV:image-20191211162109235

PLS 算法

NIPALS

  1. 令 $X_a, Y_a$ 为观测矩阵和响应矩阵

  2. 数据标准化:

  • 观测/响应矩阵需要减去对应维度的均值
  • 一般没有除以标准差这一操作
  1. 取其中一列 $y$ 作为 $u_1$ (因子)

  2. 计算 $X$ 权重:(利用 $u_1$ 信息,用权重实现 $X$ 到因子 $t$ 的变换)

  1. 计算得分向量(因子):
  1. 对 $Y$ 进行相同操作,求得权重 $c_1$ ,因子 $u_1^*$ ,计算 $u$ 的残差是否收敛

  2. 计算载荷向量($p$ 反映 $X$ 和 $t$ 的关系,估计意义上 $X=tp’$:

  1. 计算新观测矩阵(残差矩阵):
  1. 循环

  2. 若为回归任务,则任务目标是回归线性模型 $Y=\alpha+X\beta +\epsilon$ ,则

​ 否则需解:

  • 其最大特征值为 $\theta_a^2$,单位特征向量为 $w_a$ , $v_a$ 可由其计算得出。

  • 第一轮之后的权重把残差变换到因子,不对原始数据变换

SIMPLS

$S=X_0’Y_0$

for i=1 to k

​ if i=1: $[u,s,v]=SVD(S)$

​ if i>1: $[u,s,v]=SVD(S-P{i-1}(P{i-1}’P{i-1})^{-1}P’{i-1}S)$

​ $r_i=u(:,1)$

​ $t_i=X_0r_i$

​ $p_i=X’_0t_i/t_i’t_i$

end

$B_{PLS}=R_k(T_k’T_k)^{-1}T_kY_0$

两者比较

  • NIPALS的权重是相对于各个残差矩阵而言的,解释不便
  • SIMPLS更快,且是Matlab 标准算法
  • 大部分情况下结果相似,但是高 latent variable 时 SIMPLS 不稳定

image-20191213141042111


Kernel PLS

  • 解决非线性问题,和SVM一样可以采用 Kernel 方法:将非线性的低维数据投影到高维后数据变得线性。核函数则用来计算数据在高维空间中的内积。
  • 实验中由于映射未知,核函数无法显式推导,一般只能通过枚举实验。

PLS分类

  • PLS-DA
  • 通过 dummy matrix 对响应矩阵编码(类似 one-hot)来分类
  • 处理非线性问题,类别不平衡问题性能会下降
  • Local weighted PLS:对每个待预测的query,只选出一部分最近的训练样本进行回归建模(多个线性模型来处理非线性)

Variable Selection

image-20191212213245596

  • filter方法,直接从输出中过滤
  • wrapper:基于filter,选出的变量送回模型重新拟合
  • embedded的方法,顾名思义即变量选择是PLSR过程的一部分
  • loading weight:可以直接用此向量衡量变量重要性
  • regression coefficients
  • variable importance in projection
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2020 thiswinex
  • 访问人数: | 浏览次数:

请我喝奶茶~

支付宝
微信