线性判别分析(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最大特征值的特征向量
相关文章推荐
- MySQL5.6.26免安装步骤
- Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复
- Ceph学习之Crush算法—— Bucket
- linux进程一章知识总结
- jsp页面与jsp页面之间的传值
- 九度oj 1444
- 把线性方程组变系数矩阵和常量形式
- 黑马程序员------网络编程(TCP&UDP)
- 公交车比喻
- 说反话(c++实现)
- nutch2.2.1 mysql 建表语句
- 说反话(c++实现)
- Decode Ways
- PHP实例开发(2)PHP通过mail()或Socket发邮件
- EFCode First 导航属性
- 斐波那契数列问题
- pandas groupby (TimeGrouper)重写Q3
- java 微信开发
- 探索angular源码--启动(1)
- EFCode First 导航属性