主成分分析(Principal Component Analysis)
这是一个二维特征的样本,如果要降维的话可以降到一维。显而易见的降维方法是扔掉一个特征,那么所有的点就会映射到x轴或者y轴上,就会出现以下两种情况:
显然右边的方法是比较好的方法,因为右边情况下的点,点和点之间的距离相对来说是比较大的,更好的保持了原来的点和点之间的距离,点和点之间拥有更高的可区分度。
而左侧的降维方案点和点变得更加密集,和原来的点和点之间的分别相应而言差异更加的大。
但是右侧的方法并不是最好的方案
假设存在一根直线,将所有的点都映射在该条指直线上,这样的话点的整体分布和原来的点的分布就没有很大的差异(点和点的距离比映射到x轴或者映射到y轴都要大,区分度就更加明显),与此同时所有的点都在一个轴上(理解成一个维度),虽然这个轴是斜着的。用这种方式将二维降到了一维度
那么如何找到这个让样本间距最大的轴?
如何定义样本间间距? 使用方差(Variance)
方差越大代表样本之间越稀疏,方差越小代表样本之间越紧密
找到一个轴,使得样本空间的所有点映射到这个轴后,方差最大
第一步:将样例的均值归为0(demean)
移动坐标轴,使得样本在每一个维度均值都为0,即
x
ˉ
\bar{x}
xˉ=0(所有的点已经映射在了新的轴上得到了新的样本的情况,两个维度分别为w1和w2),则有
第二步:我们想要一个轴的方向w=(w1,w2),使得我们所有的样本映射到w以后,有
即:
因为进行了demean处理,那么
X
ˉ
p
r
o
j
e
c
t
\bar{X}_{project}
Xˉproject的值为0。最终得到
解析:将
X
(
i
)
X^{(i)}
X(i)映射到w轴上,映射后对应的点就是
(
X
p
r
1
(
i
)
,
X
p
r
2
(
i
)
)
(X_{pr1}^{(i)},X_{pr2}^{(i)})
(Xpr1(i),Xpr2(i))。而我们所求的
∥
X
p
r
o
j
e
c
t
(
i
)
∥
\left \| X_{project}^{(i)} \right \|
∥∥∥Xproject(i)∥∥∥的值即
X
(
i
)
X^{(i)}
X(i)向量在w轴上投影的长度(图中蓝色箭头部分的长度)。
两个向量点乘的定义就是映射
w是一个方向,其为一个方向向量,模为1
θ
\theta
θ角为两个向量的夹角,化简以后得到的结果刚好是$X^{(i)}\cdot w=\left | X_{project}^{(i)} \right | $
此时,我们的目标转换为求
即: