内容摘要
本文深入剖析主成分分析(PCA)技术。介绍其通过正交变换简化数据维度的核心原理,详细推导基于最小投影距离和最大投影方差的算法过程,总结算法流程步骤。全面分析PCA的优缺点,并对比其与KPCA的差异。同时阐述降维的必要性和目的,助力读者系统掌握PCA技术及其在数据处理中的应用。
关键词:主成分分析;降维;协方差矩阵;特征值分解
一、引言
在机器学习和数据处理领域,数据的高维度常常带来诸多挑战,如计算复杂度增加、数据稀疏性问题以及过拟合风险提高等。主成分分析(Principal Component Analysis,PCA)作为一种强大的降维技术,能够有效地将高维数据转换为低维数据,同时最大程度保留数据的关键信息。本文将深入探讨PCA的原理、算法、优缺点以及其在实际应用中的价值。
二、PCA核心思想
2.1 解决数据特征问题
在处理训练数据时,经常会面临数据特征过多或特征累赘的问题。PCA的核心思想是将m维特征映射到n维(n<m),这n维形成的主元是重构出来最能代表原始数据的正交特征。通过这种方式,PCA可以去除数据中的冗余信息,简化数据结构,使得后续的数据分析和处理更加高效。
2.2 核心思想图解
假设数据集中包含m个n维数据,现在需要将其降维到n’维。以n=2,n’=1为例,我们要在众多维度方向中找到一个最能代表原始数据集的方向。
如图1所示,有 u 1 u_{1} u1、 u 2 u_{2} u2两个向量方向,从图中可以直观地看出, u 1 u_{1} u1比 u 2 u_{2} u2更适合代表原始数据集。这是基于两个主要评价指标:
- 样本点到这个直线的距离足够近。
- 样本点在这个直线上的投影能尽可能分开。
如果需要降维的目标维数是其他任意维,则评价指标相应变为:
- 样本点到这个超平面的距离足够近。
- 样本点在这个超平面上的投影能尽可能分开。
三、PCA算法推理
3.1 基于最小投影距离的推理
假设数据集中包含m个n维数据,且数据进行了中心化。经过投影变换得到的新坐标为 z ( i ) = w T x ( i ) z^{(i)} = w^{T}x^{(i)} z(i)=wTx(i),其中w是标准正交基。如果我们将数据从n维降到n’维,经过降维后,新坐标为 Z = [ z ( 1 ) , z ( 2 ) , ⋯ , z ( m ) ] T Z = [z^{(1)}, z^{(2)}, \cdots, z^{(m)}]^{T} Z=[z(1),z(2),⋯,z(m)]T。样本点 x ( i ) x^{(i)} x(i)在新坐标系下的投影为 x ~ ( i ) = W z ( i ) \tilde{x}^{(i)} = Wz^{(i)} x~(i)=Wz(i)。
要想使样本点到超平面的距离足够近,目标是最小化 ∑ i = 1 m ∥ x ~ ( i ) − x ( i ) ∥ 2 2 \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} ∑i=1m x~(i)−x(i) 22。对此式进行推理,可得:
∑ i = 1 m ∥ x ~ ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ∥ W z ( i ) − x ( i ) ∥ 2 2 = ∑ i = 1 m ( W z ( i ) ) T ( W z ( i ) ) − 2 ∑ i = 1 m ( W z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = ∑ i = 1 m ( z ( i ) ) T ( z ( i ) ) − 2 ∑ i = 1 m ( z ( i ) ) T x ( i ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) = − t r ( W T ( ∑ i = 1 m x ( i ) ) T ( z ( i ) ) + ∑ i = 1 m ( x ( i ) ) T x ( i ) ) = − t r ( W T ( ∑ i = 1 m x ( i ) ( x ( i ) ) T ) W ) \begin{align*} \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} &=\sum_{i = 1}^{m}\left\|Wz^{(i)} - x^{(i)}\right\|_{2}^{2}\\ &=\sum_{i = 1}^{m}\left(Wz^{(i)}\right)^{T}\left(Wz^{(i)}\right)-2\sum_{i = 1}^{m}\left(Wz^{(i)}\right)^{T}x^{(i)}+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\\ &=\sum_{i = 1}^{m}\left(z^{(i)}\right)^{T}\left(z^{(i)}\right)-2\sum_{i = 1}^{m}\left(z^{(i)}\right)^{T}x^{(i)}+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\\ &=-tr\left(W^{T}\left(\sum_{i = 1}^{m}x^{(i)}\right)^{T}\left(z^{(i)}\right)+\sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)}\right)\\ &=-tr\left(W^{T}\left(\sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T}\right)W\right) \end{align*} i=1∑m x~(i)−x(i) 22=i=1∑m Wz(i)−x(i) 22=i=1∑m(Wz(i))T(Wz(i))−2i=1∑m(Wz(i))Tx(i)+i=1∑m(x(i))Tx(i)=i=1∑m(z(i))T(z(i))−2i=1∑m(z(i))Tx(i)+i=1∑m(x(i))Tx(i)=−tr WT(i=1∑mx(i))T(z(i))+i=1∑m(x(i))Tx(i) =−tr(WT(i=1∑mx(i)(x(i))T)W)
在推导过程中,分别用到了矩阵转置公式以及矩阵的迹,最后两步是将代数和转为矩阵形式。
由于W的每一个向量 w j w_{j} wj是标准正交基, S = 1 m ∑ i = 1 m x ( i ) ( x ( i ) ) T S = \frac{1}{m}\sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T} S=m1∑i=1mx(i)(x(i))T是数据集的协方差矩阵, ∑ i = 1 m ( x ( i ) ) T x ( i ) \sum_{i = 1}^{m}\left(x^{(i)}\right)^{T}x^{(i)} ∑i=1m(x(i))Tx(i)是一个常量。最小化 ∑ i = 1 m ∥ x ~ ( i ) − x ( i ) ∥ 2 2 \sum_{i = 1}^{m}\left\|\tilde{x}^{(i)} - x^{(i)}\right\|_{2}^{2} ∑i=1m x~(i)−x(i) 22又可等价于:
a r g m i n ⏟ W − t r ( W T X X T W ) \underbrace{arg min}_{W}-tr\left(W^{T}XX^{T}W\right) W argmin−tr(WTXXTW) s . t . W T W = I s.t. W^{T}W = I s.t.WTW=I
利用拉格朗日函数可得到:
J ( W ) = − t r ( W T X X T W ) + λ ( W T W − I ) J(W)=-tr\left(W^{T}XX^{T}W\right)+\lambda\left(W^{T}W - I\right) J(W)=−tr(WTXXTW)+λ(WTW−I)
对w求导,可得 − X X T W + λ W = 0 -XX^{T}W+\lambda W = 0 −XXTW+λW=0,即 X X T W = λ W XX^{T}W=\lambda W XXTW=λW。 X X T XX^{T} XXT是由n’个特征向量组成的矩阵,λ为 X X T XX^{T} XXT的特征值。w即为我们想要的矩阵。
3.2 基于最大投影方差的推导
基于最大投影方差的推导过程较为复杂,本文不再赘述,感兴趣的读者可自行查阅资料。
四、PCA算法流程总结
PCA算法的输入为n维样本集 X = [ x ( 1 ) , x ( 2 ) , ⋯ , x ( m ) ] X = [x^{(1)}, x^{(2)}, \cdots, x^{(m)}] X=[x(1),x(2),⋯,x(m)],目标降维维数为n’;输出为降维后的新样本集 Y Y Y。主要步骤如下:
- 对所有的样本进行中心化,使得数据的均值为0。
- 计算样本的协方差矩阵 X X T XX^{T} XXT,协方差矩阵能同时表现不同维度间的相关性及各个维度上的方差。
- 对协方差矩阵 X X T XX^{T} XXT进行特征值分解,得到特征值和特征向量。
- 取出最大的n’个特征值对应的特征向量,这些特征向量将构成新的低维空间的基。
- 标准化特征向量,得到特征向量矩阵w,确保其具有良好的数学性质。
- 转化样本集中的每个样本,将原始样本投影到新的低维空间中。
- 得到输出新样本集,完成降维操作。
在降维时,有时不明确目标维数,而要指定降维后的主成分比重阈值 k ( k ∈ ( 0 , 1 ] ) k(k \in(0,1]) k(k∈(0,1])。假设n个特征值为 λ 1 , λ 2 , ⋯ , λ n \lambda_{1}, \lambda_{2}, \cdots, \lambda_{n} λ1,λ2,⋯,λn,则n*可从 ∑ i = 1 n ∗ λ i ∑ i = 1 n λ i ≥ k \frac{\sum_{i = 1}^{n^{*}}\lambda_{i}}{\sum_{i = 1}^{n}\lambda_{i}} \geq k ∑i=1nλi∑i=1n∗λi≥k得到。
五、PCA思想总结
PCA本质上是将高维数据通过线性变换投影到低维空间的过程。在这个过程中,它去除了可以被其他向量代表的线性相关向量,以及较小特征值对应的特征向量,从而找出最能代表原始数据的投影方法。
完成PCA的关键是求解协方差矩阵。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度,所以取那些含有较大能量(特征值)的维度即可,其余的就舍掉,实现去冗余的目的。
六、PCA算法的优缺点
6.1 优点
- 仅仅需要以方差衡量信息量,不受数据集以外的因素影响,计算相对简单直接。
- 各主成分之间正交,可消除原始数据成分间相互影响的因素,使得数据结构更加清晰。
- 计算方法主要运算是特征值分解,易于实现,在许多编程语言和机器学习库中都有现成的实现方法。
6.2 缺点
- 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强,这给后续的数据分析和理解带来一定困难。
- 方差小的非主成分也可能含有样本的重要信息,因降维去冗余可能对后续数据处理有影响,导致部分有用信息丢失。
七、降维的必要性及目的
7.1 必要性
- 避免多重共线性和预测变量之间相互关联。多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯,影响模型的准确性和可靠性。
- 高维空间本身具有稀疏性。例如,一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有2%,数据的稀疏性使得在高维空间中进行数据分析和建模变得更加困难。
- 避免过多的变量对查找规律造成冗余麻烦,增加计算复杂度和分析难度。
- 仅在变量层面上分析可能会忽略变量之间的潜在联系,而降维可以帮助发现这些潜在联系。
7.2 目的
- 减少预测变量的个数,简化数据结构,提高模型的训练效率和泛化能力。
- 确保这些变量是相互独立的,降低变量之间的相关性,提高模型的稳定性。
- 提供一个框架来解释结果,相关特征,特别是重要特征更能在数据中明确显示出来;如果只有二维或者三维的话,就更便于可视化展示,帮助用户更好地理解数据。
- 数据在低维下更容易处理、使用,降低计算成本和存储需求。
- 去除数据噪声,提高数据的质量和可靠性。
- 降低算法运算开销,使得模型能够在更短的时间内完成训练和预测任务。
八、KPCA与PCA的区别
KPCA(Kernelized PCA)用到了核函数思想,使用了核函数的主成分分析一般称为核主成分分析。应用PCA算法的前提是假设存在一个线性超平面,进而投影。如果数据不是线性的,这时就需要用到KPCA。
KPCA将数据集从n维映射到线性可分的高维N(N>n),然后再从N维降维到一个低维度n’(n’<n<N)。假设高维空间数据由n维空间的数据通过映射ϕ产生,n维空间的特征分解为:
∑ i = 1 m x ( i ) ( x ( i ) ) T W = λ W \sum_{i = 1}^{m}x^{(i)}\left(x^{(i)}\right)^{T}W=\lambda W i=1∑mx(i)(x(i))TW=λW
其映射为:
∑ i = 1 m ϕ ( x ( i ) ) ϕ ( x ( i ) ) T W = λ W \sum_{i = 1}^{m}\phi\left(x^{(i)}\right)\phi\left(x^{(i)}\right)^{T}W=\lambda W i=1∑mϕ(x(i))ϕ(x(i))TW=λW
KPCA通过在高维空间进行协方差矩阵的特征值分解,然后用和PCA一样的方法进行降维。由于KPCA需要核函数的运算,因此它的计算量要比PCA大很多。
九、总结
主成分分析(PCA)是一种重要的降维技术,在数据处理、机器学习等领域有着广泛的应用。本文详细介绍了PCA的核心思想、算法推理、流程总结、思想总结、优缺点以及与KPCA的区别,同时阐述了降维的必要性和目的。希望读者通过本文的学习,能够对PCA有更深入的理解和掌握,在实际工作中灵活运用这一技术解决数据处理和分析的相关问题。