偏最小二乘法(Partial Least Squares,简称PLS)是一种数据降维技术,它属于“偏最小二乘”家族。PLS算法旨在寻找两个矩阵(X和Y)之间的基本关系。这些方法是潜在变量方法,用于建模这两个空间中的协方差结构。PLS试图找到X空间中的多维方向,以解释Y空间中的最大多维方差方向。换句话说,PLS将X和Y都投影到一个低维子空间,使得变换后的X和变换后的Y之间的协方差最大化。
PLS与主成分回归(Principal Component Regression,简称PCR)有相似之处。在PCR中,样本首先被投影到一个低维子空间,然后使用变换后的X来预测目标y。PCR的一个问题是降维是无监督的,可能会丢失一些重要变量:PCR会保留方差最大的特征,但方差较小的特征可能与预测目标相关。在某种程度上,PLS允许进行类似的降维,但同时考虑了目标y。下面的例子说明了这一事实:主成分回归与偏最小二乘回归的比较。
除了典型相关分析(Canonical Correlation Analysis,简称CCA)之外,PLS估计器特别适合于预测变量矩阵的变量数量多于观测值的情况,以及特征之间存在多重共线性的情况。相比之下,标准的线性回归在这些情况下会失败,除非进行正则化。本模块中包含的类有PLSRegression、PLSCanonical、CCA和PLSSVD。
PLSCanonical算法如下所述。其他估计器使用这种算法的变体,并在下面详细说明。建议参考相关文献以获取更多细节和这些算法之间的比较。给定两个中心化的矩阵X ∈ R^(n × d)和Y ∈ R^(n × t),以及一个组件数量K,PLSCanonical的步骤如下:
# 设置X_1为X,Y_1为Y。然后,对于每个k ∈ [1, K]:
for k in range(1, K + 1):
a) 计算u_k ∈ R^d和v_k ∈ R^t,即交叉协方差矩阵C = X_k^T Y_k的前左和右奇异向量。
u_k和v_k被称为权重。根据定义,u_k和v_k被选择以最大化投影X_k和投影目标之间的协方差,即Cov(X_k u_k, Y_k v_k)。
b) 将X_k和Y_k投影到奇异向量上以获得分数:ξ_k = X_k u_k和ω_k = Y_k v_k。
c) 回归X_k在ξ_k上,即找到一个向量γ_k ∈ R^d,使得秩-1矩阵ξ_k γ_k^T尽可能接近X_k。对Y_k使用ω_k进行相同的操作以获得δ_k。向量γ_k和δ_k被称为载荷。
d) 缩减X_k和Y_k,即减去秩-1近似:X_{k+1} = X_k - ξ_k γ_k^T,Y_{k + 1} = Y_k - ω_k δ_k^T。
最后,已经将X近似为秩-1矩阵的和:X = Ξ Γ^T,其中Ξ ∈ R^(n × K)在其列中包含分数,Γ^T ∈ R^(K × d)在其行中包含载荷。对于Y,有Y = Ω Δ^T。注意,分数矩阵Ξ和Ω对应于训练数据X和Y的投影。步骤a)可以以两种方式执行:要么通过计算C的整个SVD并仅保留具有最大奇异值的奇异向量,要么直接使用幂方法计算奇异向量(参见文献中的第11.3节),这对应于算法参数中的'nipals'选项。
要将X转换为X̅,需要找到一个投影矩阵P,使得X̅ = XP。知道对于训练数据,Ξ = XP,X = Ξ Γ^T。设置P = U(Γ^T U)^-1,其中U是列中包含u_k的矩阵,有XP = X U(Γ^T U)^-1 = Ξ (Γ^T U) (Γ^T U)^-1 = Ξ,如所期望的。旋转矩阵P可以从x_rotations_属性中访问。类似地,可以使用旋转矩阵V(Δ^T V)^-1转换Y,通过y_rotations_属性访问。
要预测一些数据X的目标,正在寻找一个系数矩阵β ∈ R^(d × t),使得Y = Xβ。想法是尝试预测变换后的目标Ω作为变换后的样本Ξ的函数,通过计算α ∈ R,使得Ω = α Ξ。然后,有Y = Ω Δ^T = α Ξ Δ^T,并且由于Ξ是变换后的训练数据,有Y = X α P Δ^T,因此系数矩阵β = α P Δ^T。β可以通过coef_属性访问。
PLSSVD是PLSCanonical的简化版本:它不是迭代地缩减矩阵X_k和Y_k,而是一次性计算C = X^TY的SVD,并在矩阵U和V中存储n_components个奇异向量,这些奇异向量对应于最大的奇异值,分别对应于x_weights_和y_weights_属性。这里,变换后的数据简单地是transformed(X) = XU和transformed(Y) = YV。如果n_components == 1,PLSSVD和PLSCanonical是完全等价的。
PLSRegression估计器类似于算法为'nipals'的PLSCanonical,有两个显著的不同之处:在步骤a)中使用幂方法计算u_k和v_k时,v_k永远不会被归一化。在步骤c)中,目标Y_k是使用X_k的投影(即ξ_k)而不是Y_k的投影(即ω_k)来近似的。换句话说,载荷计算是不同的。因此,步骤d)中的缩减也会受到影响。这两个修改影响了predict和transform的输出,它们与PLSCanonical不同。同时,虽然PLSCanonical中组件的数量受到min(n_samples, n_features, n_targets)的限制,但在这里限制是X^TX的秩,即min(n_samples, n_features)。PLSRegression也被称为PLS1(单目标)和PLS2(多目标)。与Lasso一样,PLSRegression是一种正则化线性回归,其中组件的数量控制了正则化的强度。
典型相关分析(CCA)是在PLS之前独立开发的。但事实证明,CCA是PLS的一个特例,对应于文献中的“模式B”。CCA与PLSCanonical在计算步骤a)中的权重u_k和v_k的幂方法上有所不同。详细信息可以在文献的第10节中找到。由于CCA涉及X_k^TX_k和Y_k^TY_k的求逆,如果特征或目标的数量大于样本数量,这个估计器可能会不稳定。