PCA的理解与公式推导
简介
pca 又称主成分分析,多用来做降维处理。如在二维坐标中,找一个方向向量U,将样本数据,投影到方向向量中。原本的(x1,x2)就变成了(y1),(x1,x2)的坐标基是 X1和X2轴,而(y1)的坐标基是寻找的方向向量U。
寻找样本的主方向U,将m个样本投影到直线L上,得到m个投影位于L直线上的点,计算m个投影点的方差,认为方差最大的直线方向是主方向。从上面可以看到,我们是在寻找一个方向向量,来表示数据的分布情况,方差是用来衡量一维数据中数据的分离情况的,
所以可以用一句话表示:寻找一个方向向量使得投影之后的样本方差最大。
从图中可以看到,我们只需要寻找一个方向向量Z使得样本在Z投影后的距离之和最小(图中蓝色的线段距离之和最小)。则Z就是我们寻找的方向向量,这样就达到了降维的效果。若样本是3维的,我们寻找的就是一个平面,使得3维数据在平面上的投影的距离之和最小。
例子和推导过程
假设 我们有样本(x1,x2,x3,x4,y)x1,x2,x3,x4代表4个特征,y1表示该样本种类。150个这样的样本则可有矩阵表示
x
11
x
12
x
13
x
14
y
1
x
21
x
22
x
23
x
24
y
2
.
.
.
x
1501
x
1502
x
1503
x
1504
y
150
\begin{matrix} x11&x12&x13&x14&y1\\ x21&x22&x23&x24&y2\\...\\ x1501&x1502&x1503&x1504&y150\end{matrix}
x11x21...x1501x12x22x1502x13x23x1503x14x24x1504y1y2y150
样本矩阵用
X
X
X表示,则(
X
T
X^T
XT*X)可以得到一个4 * 4的对称矩阵,因为是对称矩阵,所以一定存在4个实数特征值和对应的特征向量,且这4个特征向量相互垂直。若我们将4维的样本数据降维到二维,寻找的两个向量为,4个特征值中较大的特征值对应的特征向量。将样本在这两个特征向量上投影后的数据,就是样本降维后的数据。
为何用(
X
T
X^T
XT*X)来做这个判断呢?补充一下上面的样本是中心化的。即都减去了样本均值。
方差定义: ∑ i = 1 n ( x i − u ) 2 ∗ 1 / n \displaystyle\sum_{i=1}^{n} (x_i-u)^2*1/n i=1∑n(xi−u)2∗1/n
上面的过程公式化为,若直线L方向向量为,U则投影后的数据为X* U,所以确定X*U方差最大即可。
var(X *U)=
(
X
U
−
E
)
T
∗
(
X
U
−
E
)
(XU-E)^T*(XU-E)
(XU−E)T∗(XU−E)因为样本的中心化处理。
var(X *U)=
(
X
U
−
E
)
T
∗
(
X
U
−
E
)
=
(
X
U
)
T
X
U
=
U
T
X
T
X
U
(XU-E)^T*(XU-E)=(XU)^TXU=U^TX^TXU
(XU−E)T∗(XU−E)=(XU)TXU=UTXTXU
将目标函数var(X * U)最大化,其中|U|=1即
U
T
U
=
1
U^TU=1
UTU=1.
使用拉格朗日乘值法,J(X,U,r)=var(XU)-r(
U
T
U
−
1
U^TU-1
UTU−1),
U
T
X
T
X
U
U^TX^TXU
UTXTXU对U求偏导后是等于
2
X
T
X
U
2X^TXU
2XTXU
对J求偏导可得
2
X
T
X
U
−
2
r
U
=
0
2X^TXU-2rU=0
2XTXU−2rU=0 ,即
X
T
X
U
=
r
U
X^TXU=rU
XTXU=rU,则r为X样本的特征值,U为样本的特征向量。r也代表了原始数据在U投影后的方差大小。上面也是pca的主要推导过程。