1.5.数据降维:PCA
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
主成分分析(Principal Component Analysis,PCA)来实现降维,PCA降维不会出现在数据预处理,而是基于模型的一种降维技术,从这里考虑数据、特征、模型之间的界限会变得模糊。
数据降维就是在保留重要信息的同时消除哪些“无信息量的信息”,无信息量有多重定义,而PCA关注的是线性相关性。我们将数据矩阵的列空间描述为所有特征向量的生成空间,如果列空间的秩小于特征总数,那么多数特征就是几个关键特征的线性组合;由于线性相关特征会浪费算力,为了避免这种开销,PCA试图将数据积压到一个维度大大小于原空间的线性子空间。
参考下边图示:
左图中特征线性不相关,而右图中特征可能线性相关——一般彼此完全相同的特征是很罕见的,更可能的情况是非常接近于相同但又不完全相同的特征。
PCA的核心思想就是:使用一些新特征代替冗余特征,这些新特征能恰当地总结初始特征空间中包含的信息。如果只有两个特征,很容易找出新特征,如果有成千上万的维度时,就非常困难了,所以需要一种数学方法找出新特征并且优化。其数学定义是:新的数据点团应该尽量多地保持原数据集中的信息。
使用表示的矩阵:
其中是数据点的数量
是特征的数量
表示单个数据点的列向量(所以是中一行的转置)
是表示新特征的向量(即要找的主成分)
奇异值分解:任意长方形矩阵都可以分解成3个具有特殊形状和性质的矩阵:
上述表达式中:
和是正交矩阵()
是一个包含的奇异值的对角阵,奇异值可以是正、负、零
假设有行列,且
的形状是:
的形状是:
a)特征空间中的初始数据
b)数据中心化
c)将数据向量投影到另一个向量上
d)投影坐标方差最大的方向(等价于的主特征向量)
公式1:投影坐标
当投影到上,投影的长度是这两个向量内积的一个比例,即通过的范数进行了归一化,然后限制具有单位范数。
公式2:投影坐标向量
尽管和是列向量,但是个标量,因为有很多数据点,所以可构造一个向量,表示所有数据点在新特征上的投影,此处就是数据矩阵。
下一步是计算投影的方差,方差是与均值之间的距离的平方期望值。
公式3:随机变量的方差
前边讨论中从来没涉及过均值,它是自由变量。所以此问题会从数据点中减去均值,从而将其从公式中除掉——这样结果集均值是0,方差就是的期望值;从数学几何角度上考虑,减掉均值就是将数据中心化。一个和方差非常紧密的量是两个随机变量和之间的协方差,可将其视为方差(单随机变量)概念在两个随机变量上的推广。
公式4:两个随机变量和的协方差
若随机变量均值为0时,它们协方差与线性相关度一致。
实际上,我们不可能有真正的数据分布,只有一系列观测到的数据点,,这称为经验分布,它可以给出方差的经验估计。
公式5:的经验方差,基于观测计算
结合公式1的定义,可以得到公式6中投影数据方差最大化的数学表示。
公式6:主成分目标函数
此处限制条件是的内积为1,等价于它必须具有单位长度。我们只关心的方向,不关心大小,它的大小是一个不必要的自由度,所以可以设置成任意值。
公式6看起来太笨重,所以使用矩阵-向量形式会简洁许多。它的原理是平方和恒等式:多个项的平方和等于由这些项组成的向量的范数的平方,即这个向量和它自己的内积。
公式7:主成分目标函数(矩阵-向量)
这种表示更加呈现了目标:找到一个能使输出向量的范数最大化的输入方向,实际就是矩阵的奇异值分解(SVD),最终:
最优的就是的主要左奇异向量,也就是的主特征向量。
投影数据就是原始数据的主成分。
这个过程是可重复的,找到了第一个主成分,就可以重新执行公式7:
公式8:第k+1个主成分的目标函数
解是的第个左奇异向量,按奇异值降序排列。
前个主成分对应于的前个左奇异向量。
找到主成分之后,就可以使用线性投影对特征进行转换。
令是的奇异值分解
且是列中包含前k个左奇异向量的矩阵
的维度是
是初始特征的数量
的维度是
公式9:PCA投影矩阵
投影坐标矩阵很容易计算,可以通过奇异向量彼此正交的性质进一步简化
公式10:简单PCA转换
所以投影值就是前个右奇异向量乘以前个奇异值。
PCA实现步骤:
数据矩阵中心化:,其中I是一个全1列向量,是由中每行的平均值组成的列向量。
计算:
找出主成分,前个主成分是的前列,也就是对应于个最大奇异值的右奇异向量。
转换数据,转换后的数据就是的前列。
由于目标函数正交限制,PCA转换有一个很好的副作用:转换后的特征都是不相关的——每个特征向量之间的内积都是0。这点可使用奇异向量的正交性质证明:
这个结果是个对角阵,对角线上是奇异值的平方,表示每个特征向量与自己的相关度,也称为范数。如果通过归一化把特征长度变成1,这种操作在信号领域称为白化。这种操作可得到一组特征,彼此相关度为0,与自身相关度为1。
公式11:PCA + 白化
白化和数据降维相互独立,可分别进行,零相位成分分析(Zero-Phase Component Analysis, ZCA)是一种和PCA联系非常金币的白化转换,它不会减少特征数量。
公式12:ZCA
简单的PCA投影可以在新的特征空间中以主成分为基生成坐标。这些坐标只表示投影向量的长度而不表示方向。乘以主成分之后,才能得到长度和方向;另一个合理解释是,这次相乘可以将坐标转换回初始特征控件。
使用PCA进行数据降维时,必须确定要使用的主成分的数目()。选择的
一种方法是要求主成分解释一定比例的总方差,投影的方差公式如:
这个方差就是第大奇异值的平方,奇异值的排序列表称为矩阵的谱(spectrum),所以对矩阵进行谱分析,就可以选定解释足够方差的阈值。
另一种方法涉及数据集的本征维数。如果谱中包含一些非常大的奇异值和一些非常小的奇异值,我们就可以只保留哪些非常大的奇异值,而舍弃其余奇异值。
PCA缺点:
PCA的主要诟病是转换过程太复杂,得到的结果也难解释。
PCA的计算成本也很昂贵,它依赖SVD,SVD是一个对计算能力要求很高的过程。
在流式数据、批量更新或完整的数据抽样中,很难执行PCA操作。
最好不要对原始计数执行PCA。
PCA应用场景:
在时间序列中进行异常检测。
PCA可以用于金融建模中,作为一种因子分析。
在图像学习中,可以在预处理阶段使用PCA。
很多深度模型中使用PCA或ZCA作为预处理的第一步骤。
参考: