[Machine Learning] Feature Selection


Subset Selection

Forward Stepwise Selection

  1. 初始化一个不包含任何预测变量的模型,这被称为null model。

  2. 对于 k = 0 , 1 , 2 , . . . , p − 1 k = 0, 1, 2,..., p-1 k=0,1,2,...,p1(这里 p p p 是总预测变量的数量),执行以下步骤:

    • 考虑所有的 p − k p-k pk 个模型,这些模型将 M k M_k Mk 中的预测变量增加一个额外的预测变量。
    • 选择这些 p − k p-k pk 个模型中最好的一个,将其指定为 M k + 1 M_{k+1} Mk+1。这里的“最好”是根据一些指标(例如,残差平方和(RSS)或分类错误)来衡量的。
  3. 在所有的 M 0 , M 1 , … , M p M_0,M_1,…,M_p M0,M1,,Mp 模型中选择单个最好的模型。这可以通过交叉验证预测错误,残差平方和等进行。

Forward Stepwise Selection并不能保证在所有的 2 p 2^p 2p 个包含 p p p 个预测变量子集的模型中找到最好的模型。这是因为在每一步中,它只选择在当前模型中增加一个预测变量能够最大程度地提升模型拟合度的模型,而不是考虑所有可能的预测变量子集。

Backward Stepwise Selection

  1. 初始化一个包含所有预测变量的模型,这被称为full model。

  2. 对于 k = p , p − 1 , . . . , 1 k = p, p-1, ..., 1 k=p,p1,...,1(这里 p p p 是总预测变量的数量),执行以下步骤:

    • 考虑所有的 k k k 个模型,这些模型包含 M k M_k Mk 中的所有预测变量,但删除了一个,总共有 k − 1 k-1 k1 个预测变量。
    • 选择这些 k k k 个模型中最好的一个,将其指定为 M k − 1 M_{k-1} Mk1。这里的“最好”是根据一些指标(例如,残差平方和(RSS)或分类错误)来衡量的。
  3. 在所有的 M 0 , M 1 , … , M p M_0,M_1,…,M_p M0,M1,,Mp 模型中选择单个最好的模型。这可以通过交叉验证预测错误,残差平方和等进行。

与Forward Stepwise Selection类似,Backward Stepwise Selection只需要搜索 1 + p ( p + 1 ) / 2 1 + p(p + 1)/2 1+p(p+1)/2 个模型,所以在 p p p 太大以至于不能应用最佳子集选择的情况下,也可以应用Backward Stepwise Selection。

注意:对于一些模型(如线性回归),Backward Stepwise Selection要求样本数量 n n n 大于特征数量 p p p (以便能够拟合full model)。

尽管如此,Backward Stepwise Selection并不能保证在所有的 2 p 2^p 2p 个包含 p p p 个预测变量子集的模型中找到最好的模型。这是因为在每一步中,它只选择在当前模型中删除一个预测变量能够最大程度地提升模型拟合度的模型,而不是考虑所有可能的预测变量子集。

Estimating Test Error

Mallow的 C p C_p Cp

Mallow的 C p C_p Cp是一种在多元线性回归模型中选择最优模型的方法。Mallow的 C p C_p Cp统计量以预测残差平方和和模型中参数数量为基础,这使得我们不仅可以评价模型的拟合优度,而且还可以对模型复杂度进行考虑。

Mallow的 C p C_p Cp的公式如下:

C p = 1 n ( R S S + 2 d σ ^ 2 ) C_p = \frac{1}{n} (RSS + 2d\hat{\sigma}^2) Cp=n1(RSS+2dσ^2)

其中:
n n n 是样本数;
R S S RSS RSS 是残差平方和,定义为 ∑ i = 1 n ( y i − y ^ i ) 2 \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 i=1n(yiy^i)2
d d d 是模型中的参数数量;
σ ^ 2 \hat{\sigma}^2 σ^2 是对方差的估计,通常由全模型(即包含所有预测变量的模型)的残差平方和除以对应的自由度得到。

在这个公式中,第一个部分 1 n R S S \frac{1}{n} RSS n1RSS 表示模型拟合的优度,第二个部分 2 d σ ^ 2 2d\hat{\sigma}^2 2dσ^2 用来对模型复杂度进行惩罚。模型复杂度越高(即参数数量 d d d 越多),模型可能就越倾向于过拟合,所以需要通过复杂度惩罚来对这种可能性进行调整。

使用Mallow的 C p C_p Cp选择模型时,通常会选择 C p C_p Cp最小的模型,因为这表示模型既有良好的拟合度,又没有引入过多的复杂性。

贝叶斯信息准则 (Bayesian Information Criterion, BIC)

B I C = n ln ⁡ ( R S S n ) + k ln ⁡ ( n ) BIC = n \ln(\frac{RSS}{n}) + k \ln(n) BIC=nln(nRSS)+kln(n)

其中:

n n n 是样本数量
R S S RSS RSS 是模型的残差平方和
k k k 是模型中的参数数量

在实践中,我们通常选择BIC最小的模型作为最优模型。这是因为BIC的最小化相当于最大化模型的后验概率,假设模型参数的先验分布是均匀的。

Adjusted R 2 R^2 R2

R 2 ˉ = 1 − [ ( 1 − R 2 ) n − 1 n − p − 1 ] \bar{R^2} = 1 - [(1 - R^2) \frac{n - 1}{n - p - 1}] R2ˉ=1[(1R2)np1n1]

其中:
R 2 R^2 R2 是未调整的决定系数;
n n n 是样本数量;
p p p 是模型中的参数数量(不包括截距项)。

在实践中,我们通常选择调整的 R 2 R^2 R2最大的模型作为最优模型。

Shrinkage

Ridge回归 (Tikhonov Regularization)

在标准的线性回归中,我们的目标是最小化RSS:

R S S = ∑ i = 1 n ( Y i − β 0 − ∑ j = 1 p β j X i j ) 2 = ∣ ∣ Y − X β ∣ ∣ 2 2 RSS = \sum\limits^n_{i=1}(Y_i − β_0 − \sum\limits_{j=1}^p β_jX_{ij})^2 = ||Y − X\beta||^2_2 RSS=i=1n(Yiβ0j=1pβjXij)2=∣∣Y22

这里, X X X 是我们的特征矩阵, y y y 是目标向量, β \beta β 是我们希望估计的系数向量。可以看到,如果我们将 X X X 中的一个特征列 X j X_j Xj 乘以一个常数 c c c ,那么,求解 β \beta β 时,对应的 β j \beta_j βj 就会除以同样的常数 c c c。因此,我们说最小二乘法的系数估计是尺度不变的。

对于岭回归,我们的目标函数是最小化残差平方和与系数向量的 L 2 L_2 L2 范数的和:

R S S + λ ∑ j = 1 p β j 2 = ∣ ∣ Y − X β ∣ ∣ 2 2 + λ ∣ ∣ β ∣ ∣ 2 2 RSS + \lambda\sum\limits_{j=1}^p {β_j}^2 = ||Y − X\beta||^2_2 +\lambda||\beta||^2_2 RSS+λj=1pβj2=∣∣Y22+λ∣∣β22

这里, λ \lambda λ 是一个非负的调整参数,用于控制正则化的强度。在这种情况下,如果我们将 X X X 中的一个特征列 X j X_j Xj 乘以一个常数 c c c ,那么,求解 β \beta β 时,对应的 β j \beta_j βj 的变化就会受到 c c c 的影响,因为 λ ∣ ∣ β ∣ ∣ 2 \lambda||\beta||^2 λ∣∣β2 部分也受到 β j \beta_j βj 的影响,导致对应的系数估计会有实质性的变化。因此,我们说岭回归的系数估计是尺度变化的。

这也就解释了为什么在使用岭回归之前,我们通常需要对特征进行标准化(即,将特征的平均值变为0,标准偏差变为1),这样所有特征都在同一尺度上,不会因为尺度的差异而影响系数的估计。特征标准化如下:

X ~ i j = 1 1 n ∑ i = 1 n ( X i j − X ˉ j ) 2 \tilde{X}_{ij} = \frac{1}{\sqrt{\frac{1}{n}\sum^n_{i=1}(X_{ij}-\bar{X}_j)^2}} X~ij=n1i=1n(XijXˉj)2 1

其中, X i j X_{ij} Xij表示第i个样本的第j个特征, X ˉ j \bar{X}_j Xˉj表示第j个特征的平均值, X ~ i j \tilde{X}_{ij} X~ij表示标准化后的特征。

最后,我们可以使用梯度下降或闭式解等方法求解岭回归的参数。

Lasso 回归 (Least Absolute Shrinkage and Selection Operator Regression)

Lasso回归的目标函数如下:

min ⁡ β   ∣ ∣ y − X β ∣ ∣ 2 + λ ∣ ∣ β ∣ ∣ 1 \min_{\beta} \ ||y - X\beta||^2 + \lambda||\beta||_1 βmin ∣∣y2+λ∣∣β1

这里, X X X 是特征矩阵, y y y 是目标向量, β \beta β 是待估参数向量, λ \lambda λ 是一个非负的调节参数。

注意到Lasso回归的正则项是 β \beta β的L1范数,这使得估计的系数可能会等于零,即某些特征的权重可能被完全剔除,这也是Lasso回归进行特征选择的关键。因为在Lasso回归的目标函数中, λ ∣ ∣ β ∣ ∣ 1 \lambda||\beta||_1 λ∣∣β1是一个以原点为顶点的菱形,这就导致优化问题的解可能出现在菱形的角点上。而在Ridge回归的目标函数中, λ ∣ ∣ β ∣ ∣ 2 \lambda||\beta||^2 λ∣∣β2是一个以原点为中心的圆形或者超球体,在多维空间中,这个形状没有尖角,优化问题的解不太可能出现在边界上,这就减小了Ridge回归将系数压缩到零的可能性,更可能将系数压缩到一个非常小但非零的值。

Hence, much like best subset selection, the lasso performs feature selection (in an embedded manner). We say that the Lasso yields sparse models, i.e., models that involve only a subset of variables.

因为Lasso回归可能会使一些特征的系数等于零,所以它在处理具有多重共线性问题的数据集时尤为有用。然而,Lasso回归并不能很好地处理特征数量大于样本数量的情况(p > n的情况),在这种情况下,最多只有n个特征能被选择。

Lasso回归也需要进行特征标准化以确保所有特征都在同一尺度上。

Dimension Reduction

主成分分析 (Principal Components Analysis, PCA)

PCA的目标是在高维数据中找到一组新的主成分,它们能最大程度地解释数据的方差。这些新的主成分是原始数据特征的线性组合,原始数据空间的每个方向被替换为一个新的方向,这个新的方向就是主成分。

开始时,我们有一个数据矩阵 X = [ X 1 , X 2 , . . . . , X p ] X = [X_1, X_2, ...., X_p] X=[X1,X2,....,Xp],假设它的均值为零。第一个主成分 Z 1 Z_{1} Z1是一个特征的线性组合,它的方差是最大的,即它能最大程度地解释数据的变化。 ϕ 1 \phi_{1} ϕ1是使得这个线性组合的方差最大的系数向量,我们称其为第一主成分的loadings。

Z 1 = ϕ 11 X 1 + ϕ 21 X 2 + … + ϕ p 1 X p = ∑ i = 1 p ϕ i 1 X i = X ϕ 1 Z_{1} = \phi_{11}X_{1} + \phi_{21}X_{2} + \ldots + \phi_{p1}X_{p} = \sum_{i=1}^{p}\phi_{i1}X_{i} = X\phi_{1} Z1=ϕ11X1+ϕ21X2++ϕp1Xp=i=1pϕi1Xi=Xϕ1

其中 ϕ 1 = ( ϕ 11 , … , ϕ p 1 ) T \phi_{1} = (\phi_{11}, \ldots, \phi_{p1})^{T} ϕ1=(ϕ11,,ϕp1)T是使得这个线性组合的方差最大的系数向量,我们称其为第一主成分的loadings。正则化意味着loadings的平方和必须为1,即 ϕ 1 T ϕ 1 = 1 \phi_{1}^{T} \phi_{1} = 1 ϕ1Tϕ1=1

我们注意到, Z 1 Z_{1} Z1 实际上是一个新的向量,其每一个元素都是原始数据的一个观测值在第一主成分上的投影。因此, Z 1 Z_{1} Z1 的第 i i i 个元素可以写为:

Z i 1 = ∑ j = 1 p ϕ j 1 x i j Z_{i1} = \sum_{j=1}^{p}\phi_{j1}x_{ij} Zi1=j=1pϕj1xij

这里, x i j x_{ij} xij 是数据矩阵 X X X 的第 i i i 行第 j j j 列的元素。

因此, Z 1 Z_{1} Z1 的样本方差可以写为:

V a r ( Z 1 ) = 1 n − 1 ∑ i = 1 n Z i 1 2 = 1 n − 1 ∑ i = 1 n ( ∑ j = 1 p ϕ j 1 x i j ) 2 Var(Z_{1}) = \frac{1}{n-1}\sum_{i=1}^{n}Z_{i1}^{2} = \frac{1}{n-1}\sum_{i=1}^{n}(\sum_{j=1}^{p}\phi_{j1}x_{ij})^{2} Var(Z1)=n11i=1nZi12=n11i=1n(j=1pϕj1xij)2

在 PCA 中,我们的目标是找到一组加载项 ϕ j 1 \phi_{j1} ϕj1,使得新向量 Z 1 Z_{1} Z1 的样本方差最大。

接下来的问题是,如何找到这个 ϕ 1 = [ ϕ 11 , ϕ 21 , … , ϕ p 1 ] T \phi_{1} = [\phi_{11}, \phi_{21}, \ldots, \phi_{p1}]^{T} ϕ1=[ϕ11,ϕ21,,ϕp1]T?实际上,我们需要解决一个带约束的优化问题:我们要找到一个 ϕ 1 \phi_{1} ϕ1,使得线性组合 Z 1 Z_{1} Z1的方差最大,同时要满足 ϕ 1 \phi_{1} ϕ1的元素的平方和为1(这是一个正则化的过程,防止 ϕ 1 \phi_{1} ϕ1取非常大的值):

max ⁡ ϕ 11 , … , ϕ p 1 1 n − 1 ∑ i = 1 n ( ∑ j = 1 p ϕ j 1 x i j ) 2  subject to  ∑ j = 1 p ϕ j 1 2 = 1 \max_{\phi_{11}, \ldots, \phi_{p1}} \frac{1}{n-1} \sum_{i=1}^{n} \left(\sum_{j=1}^{p}\phi_{j1}x_{ij}\right)^{2}\text{ subject to } \sum_{j=1}^{p}\phi_{j1}^{2} = 1 ϕ11,,ϕp1maxn11i=1n(j=1pϕj1xij)2 subject to j=1pϕj12=1

max ⁡ ϕ 1 1 n − 1 ∑ i = 1 n ( X i T ϕ 1 ) 2  subject to  ϕ 1 T ϕ 1 = 1 \max_{\phi_{1}} \frac{1}{n-1} \sum_{i=1}^{n} (X_{i}^T\phi_{1})^{2}\text{ subject to } \phi_{1}^{T}\phi_{1} = 1 ϕ1maxn11i=1n(XiTϕ1)2 subject to ϕ1Tϕ1=1

其中, X i X_{i} Xi X X X 的第 i i i 行。

由于 X X X 的每一列的均值都为零,因此 X X X 的样本协方差矩阵是 Σ = 1 n − 1 X T X \Sigma = \frac{1}{n-1}X^{T}X Σ=n11XTX

所以我们有:

ϕ 1 T Σ ϕ 1 = ϕ 1 T ( 1 n − 1 X T X ) ϕ 1 = 1 n − 1 ∑ i = 1 n ( X i T ϕ 1 ) 2 \phi_{1}^{T}\Sigma\phi_{1} = \phi_{1}^{T} (\frac{1}{n-1} X^{T}X) \phi_{1} = \frac{1}{n-1} \sum_{i=1}^{n} (X_{i}^T\phi_{1})^{2} ϕ1TΣϕ1=ϕ1T(n11XTX)ϕ1=n11i=1n(XiTϕ1)2

因此,上述优化问题可以等价于:

max ⁡ ϕ 1 ϕ 1 T Σ ϕ 1  subject to  ϕ 1 T ϕ 1 = 1 \max_{\phi_{1}} \phi_{1}^{T}\Sigma\phi_{1} \text{ subject to } \phi_{1}^{T}\phi_{1} = 1 ϕ1maxϕ1TΣϕ1 subject to ϕ1Tϕ1=1

因此,我们可以看到,原始的优化目标实际上等价于最大化 ϕ 1 T Σ ϕ 1 \phi_{1}^{T}\Sigma\phi_{1} ϕ1TΣϕ1。所以,通过求解协方差矩阵 Σ \Sigma Σ 的最大特征值对应的特征向量,我们就可以得到使得 Z 1 Z_{1} Z1 的样本方差最大化的加载项 ϕ 1 \phi_{1} ϕ1

Lagrangian函数为:

L ( ϕ , λ ) = ϕ 1 T Σ ϕ 1 + λ ( 1 − ϕ 1 T ϕ 1 ) L(\phi, \lambda) = \phi_{1}^{T}\Sigma\phi_{1} + \lambda(1 - \phi_{1}^{T}\phi_{1}) L(ϕ,λ)=ϕ1TΣϕ1+λ(1ϕ1Tϕ1)

计算偏导数并求解得到:

Σ ϕ 1 = λ 1 ϕ 1 \Sigma \phi_1 = \lambda_1 \phi_1 Σϕ1=λ1ϕ1

ϕ 1 T ϕ 1 = 1 \phi_{1}^{T}\phi_{1} = 1 ϕ1Tϕ1=1

这就是特征值方程。得到的特征向量就是loadings。根据上述结果,优化问题变为:

max ⁡ ϕ 1 , λ λ  subject to  ϕ 1 T ϕ 1 = 1 , Σ ϕ 1 = λ 1 ϕ 1 \max_{\phi_1, \lambda} \lambda \text{ subject to } \phi_{1}^{T}\phi_{1} = 1, \Sigma \phi_1 = \lambda_1 \phi_1 ϕ1,λmaxλ subject to ϕ1Tϕ1=1,Σϕ1=λ1ϕ1

因此, λ \lambda λ Σ \Sigma Σ 的最大特征值,而 ϕ 1 \phi_{1} ϕ1 是对应的特征向量。

求解出第一主成分后,我们可以用同样的方法求第二主成分,然后是第三主成分,以此类推。但是,求解第二主成分时,我们除了上述的约束外,还要额外加一个约束:第二主成分要与第一主成分正交,即第二主成分的加载项 ϕ 2 \phi_{2} ϕ2要满足 ϕ 2 T ϕ 1 = 0 \phi_{2}^{T}\phi_{1} = 0 ϕ2Tϕ1=0

max ⁡ ϕ 12 , … , ϕ p 2 1 n − 1 ∑ i = 1 n ( ∑ j = 1 p ϕ j 2 x i j ) 2  such that  ∑ j = 1 p ϕ j 2 2 = 1  and  ∑ j = 1 p ϕ j 1 ϕ j 2 = 0 \max_{\phi_{12}, \ldots, \phi_{p2}} \frac{1}{n-1} \sum_{i=1}^{n} \left(\sum_{j=1}^{p}\phi_{j2}x_{ij}\right)^{2} \text{ such that } \sum_{j=1}^{p}\phi_{j2}^{2} = 1 \text{ and } \sum\limits^p_{j=1}\phi_{j1}\phi_{j2} = 0 ϕ12,,ϕp2maxn11i=1n(j=1pϕj2xij)2 such that j=1pϕj22=1 and j=1pϕj1ϕj2=0

或者使用向量表示法:

max ⁡ ϕ 2 ϕ 2 T Σ ϕ 2  such that  ϕ 2 T ϕ 2 = 1  and  ϕ 2 T ϕ 1 = 0 \max_{\phi_{2}} \phi_{2}^{T}\Sigma\phi_{2} \text{ such that } \phi_{2}^{T}\phi_{2} = 1 \text{ and } \phi_{2}^{T}\phi_{1} = 0 ϕ2maxϕ2TΣϕ2 such that ϕ2Tϕ2=1 and ϕ2Tϕ1=0

同样,求第三主成分时,除了上述的约束外,还要求第三主成分与第一、第二主成分都正交。其他的主成分以此类推。

最后,我们得到的主成分就形成了一个新的坐标系,这个坐标系下的数据方差最大,同时各个主成分(新的坐标轴)之间是正交的。这样就完成了PCA的过程。

奇异值分解 (SVD)

任何 n × m n \times m n×m 的矩阵 X X X (假设 n ≥ m n \geq m nm)都可以写成三个矩阵的乘积:

X = U Σ V T X = U \Sigma V^{T} X=UΣVT

其中, U U U 是一个 n × m n \times m n×m 的正交矩阵, V T V^{T} VT 是一个 m × m m \times m m×m 的正交矩阵的转置, Σ \Sigma Σ 是一个对角矩阵,其对角线上的元素是奇异值(非负实数),且按照大小降序排列。

矩阵 V V V 定义了新的坐标轴,也就是主成分。它的列向量就是主成分载荷。

矩阵 U U U 是原始数据 X X X 在新坐标系下的表达,也就是主成分得分。它的第 i i i 行就是 X X X 的第 i i i 行在新坐标系下的坐标。
我们通常只保留前 k k k 个主成分,也就是只取矩阵 U U U V V V 的前 k k k 列,以及对角矩阵 Σ \Sigma Σ 的前 k k k 个奇异值。这样,我们就可以将原始数据 X X X 近似表示为:

X ≈ U k Σ k V k T X \approx U_k \Sigma_k V_k^{T} XUkΣkVkT

其中, U k U_k Uk U U U 的前 k k k 列, Σ k \Sigma_k Σk Σ \Sigma Σ 的前 k k k 个奇异值, V k T V_k^{T} VkT V T V^{T} VT 的前 k k k 列。

这种方法将数据的维度从 m m m 降低到了 k k k,大大减少了数据的规模。并且,由于选择的是方差最大的 k k k 个主成分,所以丢失的信息相对较少,能够对原始数据有一个较好的近似。

例如,考虑图像压缩问题。一个未压缩的灰度图像有 n × m n \times m n×m 个像素,我们需要存储 n × m n \times m n×m 个整数。如果我们使用前 k k k 个主成分来压缩图像,我们只需要存储:

  • 对角矩阵 Σ k \Sigma_k Σk 中的 k k k 个奇异值
  • 矩阵 U k U_k Uk 的前 k k k 列( n n n k k k 列)
  • 矩阵 V k V_k Vk 的前 k k k 列( m m m k k k 列)

所以,总共需要存储的数目是 k ( 1 + n + m ) k(1 + n + m) k(1+n+m),压缩比为 k ( 1 + n + m ) n m \frac{k(1+n+m)}{n m} nmk(1+n+m)

Scaling

在PCA中,经常会对变量进行中心化处理,也就是移除均值,使每个变量的平均值为零。这是因为PCA是基于方差的,如果我们不移动数据点到均值为0,那么PCA将会更加偏向于那些原始均值更大的变量。

另外,我们也可以通过标准化数据来使所有变量具有标准偏差为1。标准化的目的是为了消除不同变量之间可能存在的量级差异。如果变量的单位不同,其方差会非常不同。因为载荷会更偏向于方差较大的变量,所以如果不进行标准化,那些原本方差较大或者测量单位相对较大的变量将会对主成分分析的结果产生更大的影响。这可能不是我们想要的,因为这可能会使我们忽视那些在原始单位上较小但是在实际影响上较大的变量。

但是,如果所有变量共享相同的单位,那么标准化可能就不必要了,因为没有量纲问题。

性质

  • Unique and global solution:

    PCA的结果是确定的,不依赖于初始化或随机种子。

  • Ordered components:

    PCA的主成分按照解释方差的多少进行排序,第一主成分解释最多的方差,第二主成分解释次多的方差,依此类推。

  • Best low rank approximation to the data:

    数据的最佳低秩近似是指寻找一个秩为 r r r 的矩阵 X ^ \hat{X} X^ 来近似原始矩阵 X X X,使得它们之间的 Frobenius 范数最小。这可以被看作是一个优化问题,即 min ⁡ X ^ ∣ ∣ X − X ^ ∣ ∣ F 2  such that rank ( X ^ ) ≤ r \min_{\hat{X}} ||X - \hat{X}||_F^2 \text{ such that } \text{rank}(\hat{X}) \leq r minX^∣∣XX^F2 such that rank(X^)r

    在这个表达式中, ∣ ∣ ⋅ ∣ ∣ F || \cdot ||_F ∣∣F 是 Frobenius 范数,它定义为矩阵中所有元素平方和的平方根。 r r r 是我们期望的近似矩阵的秩,它通常远小于 n n n p p p X X X 的行数和列数)。

    如果我们将数据矩阵 X X X 投影到由前 r r r 个主成分载荷向量(即 ϕ 1 , … , ϕ r \phi_1, \ldots, \phi_r ϕ1,,ϕr)定义的子空间,得到的投影矩阵就是最佳的低秩近似。

  • Is not the best for non-linear relationships.

t-SNE

t-SNE是一种用于高维数据的可视化的非线性降维方法。与PCA等线性方法不同,t-SNE可以捕捉到更复杂的非线性关系。然而,t-SNE的计算成本较高,且无法像PCA那样提供可以进行推断的主成分。

t-SNE的具体步骤如下:

  1. 构造高维对象对的概率分布:t-SNE首先在高维空间中构造一个概率分布,使得相似的对象有较大的概率被选择,而不相似的对象被选择的概率非常小。这一概率分布通常定义为高斯分布,即对于每个点 i i i ,定义其与点 j j j 的条件概率 p j ∣ i p_{j|i} pji 如下:

    p j ∣ i = exp ⁡ ( − ∣ ∣ x i − x j ∣ ∣ 2 / 2 σ i 2 ) ∑ k ≠ i exp ⁡ ( − ∣ ∣ x i − x k ∣ ∣ 2 / 2 σ i 2 ) p_{j|i} = \frac{\exp(-||x_i - x_j||^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-||x_i - x_k||^2 / 2\sigma_i^2)} pji=k=iexp(∣∣xixk2/2σi2)exp(∣∣xixj2/2σi2)

    其中, ∣ ∣ x i − x j ∣ ∣ 2 ||x_i - x_j||^2 ∣∣xixj2 是两点的欧氏距离的平方, σ i 2 \sigma_i^2 σi2 是高斯分布的方差。然后,将这个条件概率对称化,得到点 i i i j j j 被同时选择的概率 p i j p_{ij} pij

    p i j = p j ∣ i + p i ∣ j 2 n p_{ij} = \frac{p_{j|i} + p_{i|j}}{2n} pij=2npji+pij

  2. 在低维空间中定义相似的概率分布:t-SNE在低维空间中也定义一个类似的概率分布。然而,为了解决在低维空间中的“拥挤问题”,这里采用的是 t 分布而不是高斯分布。假设 y i y_i yi y j y_j yj 是在低维空间中的两点,定义它们被同时选择的概率 q i j q_{ij} qij 如下:

    q i j = ( 1 + ∣ ∣ y i − y j ∣ ∣ 2 ) − 1 ∑ k ≠ l ( 1 + ∣ ∣ y k − y l ∣ ∣ 2 ) − 1 q_{ij} = \frac{(1 + ||y_i - y_j||^2)^{-1}}{\sum_{k \neq l} (1 + ||y_k - y_l||^2)^{-1}} qij=k=l(1+∣∣ykyl2)1(1+∣∣yiyj2)1

  3. 最小化概率分布之间的 Kullback-Leibler 散度:最后,t-SNE的目标是找到低维空间的点的位置,使得 q i j q_{ij} qij 尽可能接近 p i j p_{ij} pij。这一目标可以通过最小化 p i j p_{ij} pij q i j q_{ij} qij 之间的 Kullback-Leibler 散度来实现:

    K L ( P ∣ ∣ Q ) = ∑ i ≠ j p i j log ⁡ p i j q i j KL(P||Q) = \sum_{i \neq j} p_{ij} \log \frac{p_{ij}}{q_{ij}} KL(P∣∣Q)=i=jpijlogqijpij

    这个最优化问题通常使用梯度下降方法进行求解。

Multidimensional Scaling (MDS)

MDS一种用于在较低维度空间(通常为2维或3维空间)中可视化地表示对象之间近似度(相似性或距离)的技术。与PCA和t-SNE这样的方法不同,MDS只需要距离或非相似性矩阵,而不需要完整的数据集。

MDS通过优化一个损失函数来保留原始数据中的距离,使得在低维空间的投影能尽可能地保留原始数据的距离。已知一个描述数据点之间距离或相似性的矩阵 D = [ d i j ] D = [d_{ij}] D=[dij],寻找一组在低维空间(例如二维或三维)中的投影 z 1 , . . . , z k z_1, ..., z_k z1,...,zk ,使得以下的损失函数(也被称为stress function)最小:
在k维空间中,我们有n个点的投影 z 1 z_1 z1, …, z n z_n zn。我们希望这些投影的欧氏距离尽可能地接近原始的距离
S ( D , Z ) = ∑ i < j ( d i j − ∣ ∣ z i − z j ∣ ∣ ) 2 ∑ i < j d i j 2 S(D, Z) = \sqrt{\frac{\sum_{i < j}(d_{ij} - ||z_i - z_j||)^2}{\sum_{i < j}d_{ij}^2}} S(D,Z)=i<jdij2i<j(dij∣∣zizj∣∣)2

S L S ( z 1 , z 2 , . . . , z k ) = ∑ i ≠ j ( d i j − ∣ ∣ z i − z j ∣ ∣ ) 2 S_{LS}(z1, z2, ..., zk) = \sqrt{\sum_{i \neq j}(d_{ij} - ||z_i - z_j||)^2} SLS(z1,z2,...,zk)=i=j(dij∣∣zizj∣∣)2

其中, d i j d_{ij} dij 是矩阵 D D D中的元素,表示数据点 i i i j j j 在原始空间中的距离或相似性, ∣ ∣ z i − z j ∣ ∣ ||z_i - z_j|| ∣∣zizj∣∣ 是数据点 i i i j j j 在低维空间中的欧氏距离。

解释MDS图的时候,旋转是可以的(因为轴和方向是有一定任意性的),只有相对位置是重要的。我们通常寻找在MDS图中接近的对象,这些对象在原始高维空间中也是相似的。然而,MDS的一个主要挑战是选择合适的低维空间的维度 k k k,这需要根据问题的具体情况来确定,或者通过一些启发式的方法(如Scree图中的肘部法则)来估计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值