PCA算法认为降维就是一个简单的线性函数,它的输入 x x x和输出 z z z之间是线性变换,即 z = W x z = Wx z=Wx,PCA要做的就是根据 x x x把 w w w找出来( z z z未知)。
一维空间
为了简化问题,假设z是一维的向量,也就是把x投影到一维空间,此时w是一个行向量
z
1
=
w
1
⋅
x
z_{1} = w^{1}\cdot x
z1=w1⋅x,其中
w
1
w^{1}
w1的长度为1,即
∥
w
1
∥
2
=
1
\left \| w^{1} \right \|_{2}=1
∥∥w1∥∥2=1,此时
z
1
z_{1}
z1 就是
x
x
x在
w
1
w^{1}
w1方向上的投影。
w
1
w^{1}
w1具体是什么样的:
我们希望选这样一个
w
1
w^{1}
w1,它使得
x
x
x经过投影之后得到的
z
1
z_{1}
z1 分布越大越好,也就是说,经过这个投影后,不同样本点之间的区别,应该仍然是可以被看得出来的,即:
希望找到一个投影的方向,它可以让投影后的方差越大越好。
不希望投影使得这些数据点挤在一起,导致点与点之间的奇异度消失。
其中,方差的计算公式:
V
a
r
(
z
1
)
=
1
N
∑
z
1
(
z
1
−
z
1
ˉ
)
2
,
∥
w
1
∥
2
=
1
Var(z_{1}) = \frac{1}{N}\sum_{z_{1}}^{}(z_{1}-\bar{z_{1}})^{2},\left \| w^{1} \right \|_{2} = 1
Var(z1)=N1∑z1(z1−z1ˉ)2,∥∥w1∥∥2=1,
z
1
ˉ
\bar{z_{1}}
z1ˉ是
z
1
z_{1}
z1的平均值。
下图为所有样本点在两个不同的方向上投影之后的方差比较:
N维空间
现实中往往需要投影导更高维的空间。
对于
z
=
W
x
z = Wx
z=Wx来说:
z
1
=
w
1
⋅
x
z_{1} = w^{1}\cdot x
z1=w1⋅x,表示
x
x
x在
w
1
w^{1}
w1方向上的投影。
z
2
=
w
2
⋅
x
z_{2} = w^{2}\cdot x
z2=w2⋅x,表示
x
x
x在
w
2
w^{2}
w2方向上的投影。
z
1
,
z
2
,
.
.
.
z_{1} ,z_{2} ,...
z1,z2,...结合起来就可以得到
z
z
z,
w
1
,
w
2
,
.
.
.
w^{1},w^{2},...
w1,w2,...,分别是
W
W
W的第1,2,…个行,这里的,
w
i
w^{i}
wi必须是相互正交,此时
W
W
W 是正交矩阵(orthogonal matrix)
l