LDA线性判别分析

PCA不考虑label,属于unsupervised,那么LDA就是考虑了y的label。

对于binary classification,如果有N个x \in {\mathbb{R}^d},其中有N1个y=1,N2个y=0.现在我们想把d个特征减少到只有1个,同时还要保证降维后,它们能够最大程度的区分开。现在要做的是找到一个向量clip_image002,另x投影到w,用clip_image002[4]d表示。这里的y是x到w上的投影点之间的距离。

首先计算每类样例的均值,因为是binary classification,所以这里的x有两类

clip_image002[6]

x投影到w后的新样本点的均值为

\mu _{\rm{i}}^{\rm{'}} = \frac{1}{{{N_i}}} \sum \limits_{x \in {w_i}} {w^T}x = {w^T}x

其实投影后的新样本点的均值就是原样本点的均值在w上的投影。由于是binary classification,我们希望两个均值μ1和μ2尽量远离,用数学式子表达就是:

\left| {\mu _1^{\rm{'}} - \mu _2^{\rm{'}}} \right| = \left| {{{\rm{w}}^{\rm{T}}}({{\rm{\mu }}_1} - {{\rm{\mu }}_2})} \right|

值越大越好,这是一个关于向量w的函数,因此用J(w)表示。

但是有均值最大作为保证还是不够的,例如下图

image

样本点的均值在向量x1上得到的均值差比在x2上的大,但是在x1上的投影反倒木有比在x2的好,因为在x1上的投影会造成overlapping,并不能区分样本点。这时候需要考虑到投影后的样本方差,对于类1或者类2,它们自己的方差如果越大,则样本点分布的范围就越大,这样会造成更大的可能会overlapping,样本点越难分离。

定义散列值(scatter)

{\rm{s}}_{\rm{i}}^{2{\rm{'}}} =  \sum \limits_{x \in {w_i}} {({w^T}x - u_i^')^2}

这个式子其实就是新的样本点的方差,去掉了平均的动作,因此散列值就代表了样本分散的程度,越大越散。

将散列值加入到J(w)中,关于均值的关系是越大越好,关于散列值的关系是越小越好,因此把散列值s放到分母,均值放到分子,构成新的J(w),这样就可以通过求得最大的J(w),同时满足均值和散列值对我们的要求。

{\rm{J}}\left( {\rm{w}} \right) = \frac{{{{\left| {\mu _1^{\rm{'}} - \mu _2^{\rm{'}}} \right|}^2}}}{{{\rm{s}}_1^{2{\rm{'}}} + {\rm{s}}_2^{2{\rm{'}}}}}

对散列值式子进一步展开有

image

定义{{\rm{S}}_{\rm{i}}} =  \sum \limits_{x \in {w_i}} (x - {u_{\rm{i}}}){(x - {u_{\rm{i}}})^{\rm{T}}},注意到协方差的计算方式如下图,因此Si表示没有做平均动作的协方差矩阵,成为散列矩阵。

image

定义clip_image002[8],称为within-class scatter matrix。注意这个式子里的每一项都是投影之前的样本点的性质。

现在讨论散列值,也就是投影过后的样本点

{\rm{s}}_{\rm{i}}^{2{\rm{'}}} =  \sum \limits_{x \in {w_i}} {({w^T}x - u_i^')^2}

使用clip_image002[10]clip_image002[12]clip_image002[14]。因此{\rm{s}}_1^{2{\rm{'}}} + {\rm{s}}_2^{2{\rm{'}}} = {{\rm{w}}^{\rm{T}}}{{\rm{S}}_1}{\rm{w}} + {{\rm{w}}^{\rm{T}}}{{\rm{S}}_2}{\rm{w}} = {{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{w}}}{\rm{w}}

回到J(w)的分子部分,平方可以忽略绝对值,有

image

定义{{\rm{S}}_{\rm{B}}} = ({{\rm{\mu }}_1} - {{\rm{\mu }}_2}){({{\rm{\mu }}_1} - {{\rm{\mu }}_2})^{\rm{T}}},称为Between-class scatter matrix,秩为1。因此J(w)可以表示为{\rm{J}}({\rm{w}}) = \frac{{{{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{B}}}{\rm{w}}}}{{{{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{w}}}{\rm{w}}}}。接下来要对w求偏导,然后令求完导的部分为0,求得w。但是在此之前,必须要对J(w)进行归一化,否则在导数前添加任何的系数,然后令其为0,这样求出的w就有很多个。

{{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{w}}}{\rm{w}} = 1作为约束条件,然后加入拉格朗日乘子,构建式子{\rm{c}}({\rm{w}}) = {{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{B}}}{\rm{w}} - {\rm{\lambda }}({{\rm{w}}^{\rm{T}}}{{\rm{S}}_{\rm{w}}}{\rm{w}} - 1)

然后对c求w的偏导,有:\frac{{{\rm{dc}}}}{{{\rm{dw}}}} = 2{{\rm{S}}_{\rm{B}}}{\rm{w}} - 2{\rm{\lambda }}{{\rm{S}}_{\rm{w}}}{\rm{w}} = 0 =  > {{\rm{S}}_{\rm{B}}}{\rm{w}} = {\rm{\lambda }}{{\rm{S}}_{\rm{w}}}{\rm{w}}

两边都乘以clip_image002[20],得S_w^{ - 1}{S_B}w = {\rm{\lambda w}}。因此w是S_w^{ - 1}{S_B}的特征向量,clip_image002[22]S_w^{ - 1}{S_B}矩阵的特征值。

{S_B} = ({{\rm{\mu }}_1} - {{\rm{\mu }}_2}){({{\rm{\mu }}_1} - {{\rm{\mu }}_2})^{\rm{T}}}代入上式子左边得到

image

由于上面经过了归一化处理,w前面的系数可以忽略,所以{\rm{w}} = S_w^{ - 1}\left( {{{\rm{\mu }}_1} - {{\rm{\mu }}_2}} \right)

可见,我们只需要求出原始样本的均值:\left( {{{\rm{\mu }}_1} - {{\rm{\mu }}_2}} \right),和方差:S_w^{ - 1},要保证{{\rm{S}}_{\rm{w}}}可逆的情况下,就可以求出最优的方向w。

posted on 2015-06-13 17:39  CaseyZ  阅读(242)  评论(0编辑  收藏  举报

导航