如何理解PCA(学习笔记)
一、问题引入
维度灾难
当数据的维度(特征数量)增加时,数据空间也变得更大,这会导致以下问题:
1、维度爆炸:随着维度的增加,数据点之间的距离变得更远。在高维空间中,大多数数据点之间的距离变得相等或接近于最大距离,这使得数据的区分变得困难。因此,高维数据中的稀疏性增加,数据变得更加分散,难以有效进行分析。
-
维度鸿沟:在高维空间中,数据分布变得更加稀疏,而维度鸿沟是指与高维空间中的数据比较相似的低维表示。这意味着在高维空间中,数据点之间的相对关系和相似性可能无法在较低维空间中准确表示,导致难以确定数据的结构和模式。
-
过拟合:在高维数据中,模型倾向于过度拟合训练数据。由于维度的增加,模型会更容易记住噪声或无用的特征,而不是真正的模式。这导致模型在未见过的数据上的性能下降。
-
计算开销:随着维度的增加,计算机处理和存储数据的开销也会增加。高维数据需要更多的内存和处理能力,对计算资源的需求更高。
应对维度灾难通常有如下解决:
1、人为进行特征选择,减少维度
2、线性降维:PCA,MDS
3、非线性降维,流形:Isomap,LLE
二、PCA
1、PCA是干啥的?
假设有一组二维的数据,我们给它降到一维。
PCA(Principal Component Analysis)主成分析,做的就是找到一组新的坐标系,把原始的数据投影到上面,如上图。上面的X ‘ 称为主成分1
PCA找到的新坐标系,要满足:
(1)最大投影方差
(2)最小重构误差
2、前置知识
数据的一些表达方式:
3、概括
PCA总结为3个点:
(1)数据中心化 ---------------方便计算,每个维度的均值为0
(2)最大投影方差
(3)最小重构代价
(2)、(3)其实本质上是同一个东西
假设红线是我们要找的第一主成分,因为在原坐标上蓝点到原点的距离是固定的为a,
如上图,c为投影,b为重构代价。根据勾股定理,a不变,c最大那么b肯定是最小,详解请看下面:
4、最大投影方差
下面动画演示的是PCA怎么找主成分的过程:
PCA就是在找一个新的坐标系把数据都投影到上面去,并使得数据在新的坐标轴上的方差最大(间隔最大),避免间隔小导致数据投影到新坐标系重叠,导致一部分信息的丢失。这样就能达到数据降维的目的并且让保留的信息最大化。如下图所示:
大概这个时候的是最好的。
最大投影方差数学表达
于是乎可以转化为一个带约束求最值的问题
5、最小重构代价
如果找到的基是这种形式,那所有的点将会投影到同一个点,此时的信息将会丢失很多,
我们把点到基的正交距离称为cost,要尽可能的使信息丢失最少,那就要使得cost最小。
三、从SVD的角度理解PCA
了解SVD可以参考:如何直观理解SVD
由前面及SVD的知识,可以得出,
这里是对中心化数据矩阵HX进行SVD分解:
这种对数据直接进行SVD分解的称为PCOA主坐标分析
四、总结
PCA的主要步骤: