您的位置:首页 > 其它

线性判别分析(Linear Discriminant Analysis)

2015-08-01 21:48 369 查看

概念

线性判别分析(Linear Discriminant Analysis)是一种根据分类特征有监督方法的降维算法。LDA是将高维数据投影到低维数据,同时保证不同类尽量的分得开,即:类内距离尽量的近,类间距离尽量的远。

二分类数据做LDA

对于DD维的样本x={x(1),x(2),...,x(N)}x=\left\{ x^{(1)},x^{(2)},...,x^{(N)}\right\}

设ww是投影向量,xx是样本数据,C1是第一类,C2是第二类C_1是第一类,C_2是第二类

投影后的数据:y=wTxy=w^Tx

NiN_i是第ii类的训练集数据量

投影前样本的均值μi=1Ni∑xϵCix\mu _i=\frac{1}{N_i}\sum_{x\epsilon C_i}x

投影后样本的均值μi¯=1Ni∑xϵCiy=1Ni∑xϵCiwTx=wTμi \bar{\mu_i}=\frac{1}{N_i}\sum_{x\epsilon C_i}y=\frac{1}{N_i}\sum_{x\epsilon C_i}w^Tx=w^T\mu_i

定义投影后的散度(scatter),等于类内方程:si¯2=∑yϵCi(y−μi¯)2\bar{s_i}^2=\sum_{ y\epsilon {C_i}}(y-\bar{\mu_i})^2

为了使两类更好的分开,必须使均值尽可能的远,散度尽量在很小的区域。



如上图:左侧的投影结果把两类数据都混淆在一起了,而右侧的投影效果很好,两类数据明显分开了。

根据费希尔线性判别式(Fisher’s linear discriminant)

J(w)=|μ1¯−μ2¯|2si¯2+s2¯2J(w)=\frac{|\bar{\mu_1}-\bar{\mu_2}|^2}{\bar{s_i}^2+\bar{s_2}^2}

极大化上面的等式,得到的ww就是投影方向。

为了得到最大的ww,我们需要将上面的J(w)J(w)等式转换成关于ww的等式。

投影前类内散度(方差):S2i=∑xϵCi(x−μi)(x−μi)TS_i^2=\sum_{x\epsilon C_i}(x-\mu_i)(x-\mu_i)^T

投影前类内总散度之和:S21+S22=SwS_1^2+S_2^2=S_w

化简投影后的散度:

si¯2=∑yϵCi(y−μ¯i)2\bar{s_i}^2=\sum_{y\epsilon C_i}(y-\bar\mu_i)^2

=∑xϵCi(wTx−wTμi)2\sum_{x\epsilon C_i}(w^Tx-w^T\mu_i)^2

=∑xϵCiwT(x−μi)(x−μi)Tw=\sum_{x\epsilon C_i}w^T(x-\mu_i)(x-\mu_i)^Tw

=wTSiw=w^TS_iw

所以:s1¯2+s2¯2=wTSww\bar{s_1}^2+\bar{s_2}^2=w^TS_ww

化简投影后的均值:

|μ1¯−μ2¯|2=(wTμ1−wTμ2)2=wT(μ1−μ2)(μ1−μ2)Tw=wTSBw|\bar{\mu_1}-\bar{\mu_2}|^2=(w^T\mu_1-w^T\mu_2)^2=w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw=w^TS_Bw

其中SB=(μ1−μ2)(μ1−μ2)TS_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T

化简J(w)J(w):

J(w)=wTSBwwTSwwJ(w)=\frac{w^TS_Bw}{w^TS_ww}

对上式关于ww求导

ddw[wTSBwwTSww]=[wTSww]d[wTSBw]dw−[wTSBw]wTSwwdw=0\frac{d}{dw}[\frac{w^TS_Bw}{w^TS_ww}]=[w^TS_ww]\frac{d[w^TS_Bw]}{dw}-[w^TS_Bw]\frac{w^TS_ww}{dw}=0

[wTSww]2SBw−[wTSBw]2Sww=0[w^TS_ww]2S_Bw-[w^TS_Bw]2S_ww=0

同除以wTSwww^TS_ww

SBw−JSww=0S_Bw-JS_ww=0

S−1wSBw−Jw=0S_w^{-1}S_Bw-Jw=0

S−1wSBw=JwS_w^{-1}S_Bw=Jw

上式就是求特征值,特征向量的问题,S−1wSBS_w^{-1}S_B 的特征向量就是ww.注意;JJ被认为是常数,特征值。

问题转化为:argmax[wTSBwwTSww]=S−1w(μ1−μ2)arg max[\frac{w^TS_Bw}{w^TS_ww}]=S_w^{-1}(\mu_1-\mu_2)

例子



多维LDA

设原始数据是CC类

设对xx投影矩阵式WW,投影后:y=WTxy=W^Tx

类内散度矩阵:


其中:

wiw_i是wiw_i类

μi\mu_i是wiw_i类的类内均值:


类内散度矩阵之和:


类间散度矩阵之和:


总的散度矩阵之和:ST=SW+SBS_T=S_W+S_B

投影后的类内均值,所有类的均值,类内散度,类间散度如下:



三类,对于上面变量的效果图



则:



最大化J(W)J(W)所得的WW就是投影矩阵。

所求的W∗W*的每一类是最大特征值对应的特征向量(具体什么原因,可以参考二分类问题)



求出所有的w∗iw^{*}_i,就可以得到WW

说明

1.原始数据有CC类,降维的维度只能在1,2,3,...,C−11,2,3,...,C-1.

SBS_B是由CC个秩为1的矩阵的和,

,CC个类中心的均值等于整体数据的中心,则最多是C−1C-1的秩

2.数据的最大信息,对应S−1WSBS^{-1}_WS_B最大特征值的特征向量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: