主成分分析PCA)是有史以来最重要的降维算法之一。不幸的是,像所有流行的工具一样,PCA 经常被用于意想不到的目的,有时甚至被滥用。一个这样的目的是特征选择在本文中,我们给出了从不使用 PCA 进行特征选择的 5 个关键原因。但首先,让我们简要回顾一下 PCA 的内部工作原理。

什么是 PCA

问题

假设我们有一个输入向量x := (x_1, \dots, x_d) \in \mathbb{R}^d,我们假设其均值为 0 以简化参数(即 E(x)=0)。

我们有兴趣减小尺寸d我们的向量,而不会丢失太多信息。这里,一个代理的信息内容X是它的能量定义为\mathcal{E}(x) := E(||x||^2)。

挑战在于信息内容X通常不均匀地分布在其坐标上。

特别是,坐标可以是正相关或负相关,这使得很难衡量移除坐标对整体能量的影响。

让我们举一个具体的例子。在最简单的双变量情况下(d=2),

\mathcal{E}(x) = \text{Var}(x_1) + \text{Var}(x_2) + 2\rho(x_1, x_2) \sqrt{\text{Var}(x_1)\text{Var }(x_2)},

在哪里\rho(x_1, x_2)是两个坐标之间的相关性,并且\text{变量}(x_i)是方差x_i.

让我们假设x_1方差大于x_2. 去掉的效果一目了然x_2关于能量,即\mathcal{E}(x)-\text{Var}(x_1) = \text{Var}(x_2) + 2\rho(x_1, x_2) \sqrt{\text{Var}(x_1)\text{Var }(x_2)},不仅仅取决于x_2; 它还取决于之间的相关性x_1和x_2,以及关于的方差/能量x_1!什么时候d > 2,事情变得更加复杂。能量现在读取\mathcal{E}(x) =\sum_{i=1}^{d}\sum_{j=1}^{d} \rho(x_i, x_j) \sqrt{\text{Var}(x_i)\文本{Var}(x_j)},并且分析去除任何坐标对能量的影响变得更加复杂。

PCA 的目的是找到一个特征向量z := (z_1, \dots, z_d) \in \mathbb{R}^d从…获取X通过线性变换,即z = Wx,满足以下条件:

  1. z具有相同的能量X:E(||x^2||) = E(||z^2||).
  2. z有装饰坐标:\forall i \neq j, ~ \rho(x_i, x_j) = 0.
  3. 坐标z方差减小:\text{Var}(x_1) \geq \text{Var}(x_2) \geq \dots \geq \text{Var}(x_d).

满足上述3个条件时,我们有\mathcal{E}(x) = \mathcal{E}(z) =\sum_{i=1}^{d} \text{Var}(z_i)。因此,可以通过使用特征来实现降维z ^{p} := (z_1, \dots, z_p)而不是原来的特征x := (x_1, \dots, x_d), 在哪里p < d选择使得能量损失,即\mathcal{E}(z)-\mathcal{E}(z^{p}) = \sum_{i=p+1}^{d}\text{Var}(z_i),只是总能量的一小部分\mathcal{E}(z):\frac{\sum_{i=p+1}^{d}\text{Var}(z_i)}{\sum_{i=1}^{d}\text{Var}(z_i)} \ll 1.

解决方案

上述三个条件得出一个唯一的解决方案。

能量守恒方程意味着:E(||z^2||) = E\left( x^{T} W^{T}Wx\right) = E\left( x^{T} x\right)=E(||x^ 2||)。这个成立的充分条件是W是一个正交矩阵:W^{T}W = WW^{T} = I。换句话说,列(相应的行)形成了一个正交基\mathbb{R}^{d}.

至于第二个条件,它意味着自协方差矩阵\text{Cov}(z) = WE(xx^T)W^T = W\text{Cov}(x)W^T应该是对角线。

让我们写\text{Cov}(x) = UDU^T奇异值分解\text{冠状病毒}(x), 其中正交矩阵的列ü是(半正定)矩阵的正交特征向量\text{冠状病毒}(x),按特征值的降序排列。

堵塞\text{Cov}(x) = UDU^T在等式中\text{Cov}(z) = W\text{Cov}(x)W^T,我们看到,要满足第二个条件,满足WU=I=U^{T}W^{T}, 相当于W=U^{-1} =U^{T}.

请注意,因为ü是正交的,选择W = U^{T}也满足第一个条件。

最后,鉴于列ü按特征值的降序排序,它们的方差\text{Var}(z_i) = \text{Cov}(z)[i, i] = D[i, i]也形成一个递减序列,满足第三个条件。

有趣的是,可以证明W=U^{T}是满足上述三个条件的线性变换的唯一加载矩阵。

坐标z称为主成分,而变换x \to U^{T}x是主成分分析

不使用 PCA 进行特征选择的 5 个理由

现在我们对什么是 PCA 意见一致,让我给你 5 个为什么它不适合特征选择的原因。

当用于特征选择时,数据科学家通常认为z^{p} := (z_1, \dots, z_p)作为一个特征向量比包含比原始输入更少和更丰富的表示X用于预测目标是的.

原因一:能量守恒并不能保证信号守恒

PCA 的本质是,降维的有损程度是由过程中丢失的信息内容(在这种情况下为能量)驱动的。但是,对于特征选择,我们真正想要的是确保降维不会降低性能!

不幸的是,最大化特征的信息内容或能量z^p := (z_1, \dots, z_p)不一定能最大化他们的预测能力!

想想预测能力z^p作为其总能量的信号部分,或者等效地,其总能量中对预测目标有用的部分是的.

我们可以将能量分解为信号和噪声\mathcal{S}(z^p) + \mathcal{N}(z^p) = \mathcal{E}(z^p) \leq \mathcal{E}(x) = \mathcal{S}(x ) + \mathcal{N}(x) ,在哪里\mathcal{N}(z^p) := E\left(||z^p||^2 \vert y\right)是噪声分量,并且[数学处理错误]是信号。

显然,虽然 PCA 确保\mathcal{E}(x) \近似 \mathcal{E}(z^p),我们可能很容易发现自己处于 PCA 已经清除了所有原本存在的信号的情况下[数学处理错误](IE[数学处理错误])!信噪比 (SNR) 越低[数学处理错误],这种情况发生的可能性越大。从根本上说,对于特征选择,我们想要的是

信号守恒 \mathcal{S}(x) \近似 \mathcal{S}(z^p)不是能量守恒

请注意,如果我们不使用能量作为信息内容的度量,而是使用熵,则噪声将是条件熵h\left(z^p\vert y\right), 信号是互信息[数学处理错误].

原因 2:能量守恒与特征选择是对立的

从根本上说,保留原始特征向量的能量与特征选择的目标相冲突。原始特征向量时最需要特征选择X包含有关目标的无信息坐标[数学处理错误],无论是单独使用,还是与其他坐标配合使用。

在这种情况下,去除无用的特征势必会降低特征向量的能量。无用的功能越多,我们损失的能量就越多,没关系!

让我们在双变量情况下举一个具体的例子x=(x_1, x_2)来说明这一点。让我们假设[数学处理错误]没有提供关于[数学处理错误][数学处理错误]几乎完全相关[数学处理错误].

这么说x_2没有关于目标的信息[数学处理错误]意味着它应该独立于[数学处理错误]都无条件地(即[数学处理错误]) 并且有条件地[数学处理错误](IE[数学处理错误])。

例如,当x_2是完全随机的(即独立于两者[数学处理错误][数学处理错误]. 在这种情况下,我们绝对需要删除[数学处理错误], 但这样做会不可避免地减少能量[数学处理错误].

请注意,当两者x_1和[数学处理错误]已经标准化,就像在应用 PCA 之前经常发生的情况一样,删除[数学处理错误],从特征选择的角度来看,这是最佳做法,但会导致 50% 的能量损失!

更糟糕的是,在这个例子中,x_1和[数学处理错误]恰好是主成分(即[数学处理错误]) 关联到完全相同的特征值。因此,PCA 无法决定保留哪一个,即使[数学处理错误]显然是无用的[数学处理错误]几乎与目标完全相关!

原因3:特征去相关并不意味着最大互补

很容易认为,因为两个特征是去相关的,所以每个特征都必须带来一些新的东西。这当然是真的,但去相关特征带来的“新事物”是能量信息内容,不一定是信号!

大部分新能源可能是纯粹的噪音。事实上,完全随机的特征与有用的特征去相关,但它们不可能补充它们来预测目标是的; 他们没用。

原因 4:从主成分中学习模式可能比从原始特征中更难

当使用 PCA 进行特征选择时,会构建新的特征。

一般来说,特征构建的主要目标是将输入和目标之间的关系简化为我们的工具箱可以可靠学习的模型。

通过线性组合先前构建的特征,PCA 创建了更难解释的新特征,并且与目标的关系更复杂。

在申请 PCA 之前,您应该问自己的问题是:

  • 线性组合我的特征是否有意义?
  • 我能想出一个解释,为什么线性组合的特征与目标的关系与原始特征一样简单吗?

如果任一问题的答案是否定的,那么 PCA 特征可能不如原始特征有用。

作为一个例子,假设我们想要预测一个人的收入,其中包括她主要住所的 GPS 坐标、年龄、孩子数量、每周工作小时数。

虽然很容易看出基于树的学习器如何利用这些特征,但将它们线性组合会导致特征毫无意义,并且很难从使用基于树的方法中学习任何有意义的东西。原因 5:特征选择应该是特定于模型的

特征选择服务于一个主要目标:从一组候选者中删除无用的特征。如本文所述,功能有用性是特定于模型的概念。一个特征对一个模型很有用,但对另一个模型就没有多大用处了。

然而,PCA 与模型无关。事实上,它甚至没有利用有关目标的任何信息。