在实际问题研究中,多变量问题是经常会遇到的。变量太多,无疑会增加分析问题的难度与复杂性,而且在许多实际问题中,多个变量之间是具有一定的相关关系的。因此,人们会很自然地想到,能否在相关分析的基础上,用较少的新变量代替原来较多的旧变量,而且使这些较少的新变量尽可能多地保留原来变量所反映的信息?
例如,某人要做一件上衣要测量很多尺寸,如身长、袖长、胸围、腰围、肩宽、肩厚等十几项指标,但某服装厂要生产一批新型服装绝不可能把尺寸的型号分得过多?实际生产中,只用M,L,XL等型号代替。
在分析研究多变量的课题时,变量太多就会增加课题的复杂性。人们自然希望变量个数较少而得到的信息较多。在很多情形,变量之间是有一定的相关关系的,可以解释为这两个变量反映此课题的信息有一定的重叠。主成分分析是对于原先提出的所有变量,将重复的变量(关系紧密的变量)删去多余,建立尽可能少的新变量,使得这些新变量是两两不相关的,且这些新变量在反映课题的信息方面尽可能保持原有的信息。设法将原来变量重新组合成一组新的互相无关的几个综合变量,同时根据实际需要从中可以取出几个较少的综合变量尽可能多地反映原来变量的信息的统计方法叫做主成分分析或称主分量分析,也是数学上用来降维的一种方法。
主成分分析原理
主成分分析(PCA)是一种降维技术,PCA的主要目标是将特征维度变小,同时尽量减少信息损失。就是对一个样本矩阵,一是换特征,找一组新的特征来重新标识;二是减少特征,新特征的数目要远小于原特征的数目。它通过正交变换将原始的n维数据转换为一组k维的不相关变量(即,将 n n n维原始特征映射到k维 ( k < n ) (k<n) (k<n)上),称这 k k k维特征为主成分。
- 将数据映射到k维上,实际上是选择了数据中方差最大的k个方向。
- PCA的目标是保留原始数据中尽可能多的变异性(方差)
- 需要强调的是,不是简单地从 n n n维特征中去除其余 n --- k n---k n---k维特征,而是重新构造出全新的k维正交特征,且新生成的k维数据尽可能多地包含原来 n n n维数据的信息。例如,使用PCA将20个相关的特征转化为5个无关的新特征,并且尽可能保留原始数据集的信息。
降维的几何意义
PCA是一种线性降维方法,即通过某个投影矩阵将高维空间中的原始样本点线性投影到低维空间,以达到降维的目的,线性投影就是通过矩阵变换的方式把数据映射到最合适的方向。==降维的几何意义可以理解为旋转坐标系,取前k个轴作为新特征。==在降维过程中,实际上是在寻找一个新的坐标系,这个新坐标系的轴(即主成分)能够最好地表示数据的变异性。这个过程可以看作是对原始坐标系的旋转和缩放。
假设我们有一个样本矩阵 X = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ] X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{bmatrix} X= x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1nx2n⋮xmn ,其维度为 $ m \times n $,其中 $ m $ 是样本数量,$ n $ 是特征数量。主成分分析的步骤为:
- 数据标准化 。对每个特征 j j j 计算均值 μ j = 1 n ∑ i = 1 n x i j \displaystyle \mu_j=\frac{1}{n}\sum_{i=1}^nx_{ij} μj=n1i=1∑nxij 和标准差 σ j = ∑ i = 1 n ( x i j − μ j ) n − 1 \displaystyle \sigma_j=\sqrt \frac{\displaystyle \sum_{i=1}^n (x_{ij}-\mu_j)}{n-1} σj=n−1i=1∑n(xij−μj) ,然后对每个元素进行标准化: x i j ′ = x i j − μ j σ j \displaystyle x_{ij}^\prime = \frac{x_{ij} - \mu_j}{\sigma_j} xij′=σjxij−μj,得到标准化后的矩阵 X ′ X^\prime X′。
- 计算协方差矩阵 。计算标准化数据 X ′ X^\prime X′的协方差矩阵 R = 1 m − 1 ( X ′ ) T X ′ \displaystyle R = \frac{1}{m-1} (X^\prime)^T X^\prime R=m−11(X′)TX′这里, Σ \Sigma Σ 是一个 n × n n \times n n×n 的矩阵。
- 计算特征值和特征向量 。计算协方差矩阵 $ \Sigma $ 的特征值 λ 1 , λ 2 , ... , λ n \lambda_1, \lambda_2, \ldots, \lambda_n λ1,λ2,...,λn 和对应的特征向量 v 1 , v 2 , ... , v n \mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_n v1,v2,...,vn。
- 计算贡献率和累计贡献率。计算每个特征值对应的方差解释率 α i = λ i ∑ j = 1 n λ j \displaystyle \alpha_i =\frac{\lambda_i}{\displaystyle \sum_{j=1}^{n} \lambda_j} αi=j=1∑nλjλi,计算累计方差解释率,以确定选择多少个主成分 ∑ i = 1 k λ i ∑ j = 1 n λ j \displaystyle \sum_{i=1}^{k} \frac{\lambda_i}{\displaystyle\sum_{j=1}^{n} \lambda_j} i=1∑kj=1∑nλjλi。
- 选择主成分 。根据累积方差解释率选择前 k k k个特征向量作为主成分,使得累积方差解释率达到某个阈值(如95%),这些特征向量构成了新的特征空间的基。
- 构建特征向量矩阵 。将选择的 k k k 个特征向量组成一个矩阵 W W W,其中每列是一个特征向量: W = [ v 1 v 2 ⋯ v k ] W = \begin{bmatrix} \mathbf{v}_1 & \mathbf{v}_2 & \cdots & \mathbf{v}_k \\ \end{bmatrix} W=[v1v2⋯vk]
- 投影数据 。将原始数据投影到选定的主成分上,得到降维后的数据集 Z = X ′ W Z = X^\prime W Z=X′W。这里 Z Z Z 是一个 m × k m \times k m×k 的矩阵。
- 解释和使用结果。分析降维后的数据,通常用于数据可视化、特征提取、噪声去除等;可以将降维后的数据用于后续的机器学习任务,如分类、聚类等。
通过这些步骤,PCA可以有效地减少数据的维度,同时保留尽可能多的原始数据的方差信息。选择的主成分是数据中方差最大的方向,能够帮助揭示数据的内在结构。