PCA的步骤:
设有m条n维数据
- 将原始数据按列组成n行m列矩阵X。
- 将X的每一行(代表一个属性字段)进行零均质化,即减去这一行的均值。
- 求出协方差矩阵。
- 求出协方差矩阵的特征值及对应的特征向量。
- 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P。
- Y = P X Y=PX Y=PX即为降维到k维后的数据。
PCA的背景知识
1. PCA问题的等价
PCA(主成分分析)可以等价为线性代数中的基变换。
2. 噪音
在PCA中,假设变化较大的信号被认为是信号,变化较小的则是噪音(由低通滤波器的原理类似得来)。
变化的大小是由方差来描述的。
σ
2
=
Σ
i
=
1
n
(
x
i
−
x
‾
)
2
n
−
1
\sigma^2=\frac{\Sigma^n_{i=1}(x_i-\overline{x})^2}{n-1}
σ2=n−1Σi=1n(xi−x)2
3. 冗余和协方差矩阵
假设为两个向量的情况。若两个向量线性无关,相互独立,那么冗余度为零。易知,冗余度和相关度之间为相反的关系。冗余度越大,可降维的空间越大。
而线性代数中常常使用协方差矩阵来衡量两个向量之间的相关程度。
协方差矩阵
C
x
C_x
Cx是一个平方对称矩阵。
C
x
C_x
Cx对角线上的元素是对应的观测变量的方差。非对角线上的元素是对应的观测变量之间的协方差。
C
x
=
[
σ
x
1
x
1
2
σ
x
1
x
2
2
⋯
σ
x
1
x
m
2
σ
x
2
x
1
2
σ
x
2
x
2
2
⋯
σ
x
2
x
m
2
⋮
⋮
⋱
⋮
σ
x
m
x
1
2
σ
x
m
x
2
2
⋯
σ
x
m
x
m
2
]
C_x=\begin{bmatrix}\sigma^2_{x_1x_1}&\sigma^2_{x_1x_2}&\cdots&\sigma^2_{x_1x_m}\\\sigma^2_{x_2x_1}&\sigma^2_{x_2x_2}&\cdots&\sigma^2_{x_2x_m}\\\vdots&\vdots&\ddots&\vdots\\\sigma^2_{x_mx_1}&\sigma^2_{x_mx_2}&\cdots&\sigma^2_{x_mx_m}\end{bmatrix}
Cx=⎣⎢⎢⎢⎡σx1x12σx2x12⋮σxmx12σx1x22σx2x22⋮σxmx22⋯⋯⋱⋯σx1xm2σx2xm2⋮σxmxm2⎦⎥⎥⎥⎤
在对角线上的元素越大,就意味着方差越大,即信号的重要性越高。
总结:
协方差矩阵中,对角线上的元素越大,表明信号越强,变量的重要性越高;对角线上的元素越小,表明信号是噪音的可能性越大。在非对角线上的元素大小是信号之间相关度的衡量,即冗余度的衡量。
4. 协方差矩阵的对角化
根据以上知识,可以得知,PCA的目标是:
- 使得冗余最小,即对应于协方差矩阵的非对角元素要尽量小;
- 使得信号最大,即对应于协方差矩阵对角线元素尽可能大。
而协方差矩阵的每个元素都是非负数,所以最好的情况是,使得最终形成的协方差矩阵为对角阵。
假设变换基是标准正交的,
C
Y
C_Y
CY对角线上的元素越大,说明信号的可能性越高。
5. PCA等价问题的细化
根据以上分析,可以将PCA重新进行等价:
寻找一组正交基组成的矩阵 P P P,有 Y = P X Y=PX Y=PX使得 C Y = 1 n − 1 Y Y T C_Y=\frac{1}{n-1}YY^T CY=n−11YYT是对角阵。
对
C
Y
C_Y
CY进行推导:
PCA的局限
根据上述推导过程,我们很容易发现PCA依然存在着很大的局限性:
- PCA是采用的矩阵的方式,其内部机理是线性的,对于非线性问题的解决有着较大的局限。
- PCA假设了信号与方差之间的关系,而这种概率的表述只限于指数型概率分布模型,如果考察的数据的概率分布不满足指数型概率分布模型,那么PCA将会失效。