主成分分析 (PCA) 是否消除了数据集中的噪声?如果 PCA 不能消除数据集中的噪声,那么 PCA 实际上对数据集做了什么?有人可以帮我解决这个问题。
主成分分析消除数据中的噪声
主成分分析 (PCA) 用于 a) 降噪和 b) 降维。
它不能消除噪音,但可以降低噪音。
基本上,正交线性变换用于找到所有数据到 k 维的投影,而这些 k 维是方差最大的那些。(数据集的)协方差矩阵的特征向量是目标维度,可以根据它们的特征值对它们进行排序。高特征值表示由相关特征向量维度解释的高方差。
让我们看一下USPS数据集,该数据集是通过美国邮政服务从信封中扫描手写数字获得的。
首先,我们计算协方差矩阵的特征向量和特征值,并绘制所有特征值的降序图。我们可以看到有一些特征值可以称为主成分,因为它们的特征值比其他的要高得多。
每个特征向量都是原始维度的线性组合。因此,特征向量(在这种情况下)是可以绘制的图像本身。
对于 b) 降维,我们现在可以使用前五个特征向量并将所有数据(最初是 16*16 像素的图像)投影到 5 维空间中,方差损失最小。
(此处注意:在某些情况下,非线性降维(例如 LLE)可能比 PCA 更好,请参阅维基百科的示例)
最后,我们可以使用 PCA 进行降噪。因此,我们可以在三个级别(低、高、异常值)中向原始数据集添加额外的噪声,以便能够比较性能。对于这种情况,我使用均值为 0 的高斯噪声和方差作为原始方差的倍数(因子 1(低)、因子 2(高)、因子 20(离群值))可能的结果如下所示。然而,在每种情况下,都必须调整参数 k 才能找到好的结果。
最后另一种观点是将高噪声数据的特征值与原始数据进行比较(与此答案的第一张图片进行比较)。可以看到噪声影响了所有的特征值,因此只使用前 25 个特征值进行去噪,噪声的影响降低了。
PCA
不是为消除噪音而设计的。它旨在减少尺寸。由于大量特征难以处理。PCA
只是让你近似你的数据。把它想象PCA
成一个调音旋钮。您可以通过调整它来平滑地决定您想要多少近似值,如果您直接使用原始给定特征,这是不可能实现的。因为您无法直接决定要保留哪些特征以及要消除哪些特征以将您的数据近似到所需的水平。因为原始功能没有优先级或可用性顺序,您可以根据这些顺序决定保留哪个以及删除哪个。这就是为什么PCA
来到这个地方。
原始尺寸和主成分之间的主要区别在于,如果您使用原始尺寸,您可以认为在绘制任何数据点之前这些尺寸已经可用。那么会发生什么错误呢?问题是在绘制数据点之后,这些点可以随机定位,它们可能不允许我们直接消除一些原始尺寸来近似它。由于在许多情况下取决于数据点的位置,原始特征维度都可能无法捕捉到良好的变化。所以情况会是这样,要捕获大量的数据变化,您可能需要保留大量原始维度。这不是有效的。
那么有什么补救措施呢?补救措施之一是使用PCA
!在PCA
我们做相反的事情。这里的数据点已经存在。现在我们将一一放置新维度(主要组件),目标是捕获该阶段可用的大部分变化,这些变化仍未被我们已经绘制的先前主要组件捕获。因此,first PC
涵盖了单个PC
. 捕获的second PC
数据变化少于第一个PC
,而这些变化被first PC
. 再次做的third PC
比second PC
等等。因此,这些主要组件已经根据它们的有用程度或它们可以捕捉到的差异程度进行了分类。每个主成分都有两个属性——特征向量和特征值。捕捉到的变化的度量只不过是它的特征值,PC
而它的方向PC
只是它的特征向量。因为PC
s 也是轴,所以它们中的每一个都必须有一个方向。
因此,在您的情况下,正如您在评论中所说的那样,应用PCA
性能提高后,这仅仅是因为当您消除一些PC
较低方差的 s 时,即较低特征值的 s,此操作可能有助于模型泛化好。因为PC
更高特征值的 s 正在捕获更通用的特征。随着您服用越来越多PC
的 s,也正在添加专门的功能。如果你把它们全部拿走,100% 的数据变化将像原始尺寸一样恢复。所以删除删除一些PC
具有较低特征值的 s 实际上充当某种正则化,并且您的模型仅学习更一般的特征,而不会被可能不是该类的一般属性的非常精细的细节所迷惑。这就是在一定程度上防止过度拟合的方法。
但这同样不能保证那些非常精细的特定于示例的细节是噪音。PC
即使与其他s也可以嵌入噪声。因为PCA
不知道哪个是噪音,哪个是信息。因为它只是一个线性变换。所有的PC
轴都可以用现有原始尺寸的一些线性组合来表示。因此,根据不同类型噪声的变化水平,它们可以被不同PC
的 s 捕获。因此,尽管如果消除的 s 参与捕获这些噪声,则可能会减少噪声,但它并不是消除噪声的保证方法。PC
但是随着噪音,您也可能会丢失信息。