[读书笔记-西瓜书] 线性判别分析:LDA

线性判别分析(Linear Discriminant Analysis, LDA)又称Fisher判别分析,是一种数据降维的方法,主要思想是使属于同一类的投影点距离尽可能地接近(类内方差小),不同类的中心点距离尽可能地远(类间中点距离大)。

LDA就是模识课上黄老板讲的Fisher判别,名字不同而已。思想也很简单,计算也不复杂。首先定义一些变量:
xii

μii

Σii

投影到直线w上后,样本中心(均值)所在的投影就变为wTμi,协方差变为wTΣiw,推一下协方差:

展开协方差的定义:Σi=nj=1(xjui)2

变换后的协方差定义:$\Sigma’i=\sum{j=1}^n(w^Tx_j-w^Tu_i)^2$

则有:
$$
\Sigma’i=\sum{j=1}^n(w^Tx_j-w^Tu_i)^2=\sum_{j=1}^n(w^T(x_j-u_i))^2
$$

=nj=1wT(xjui)(wT(xjui))T

=nj=1wT(xjui)(xjui)Tw

=wTnj=1(xjui)2w

=wTΣiw

用变换后的协方差作为衡量类内点的“集中”程度,我们尽可能想让这个值小。于是第一个目标可以用这个值逼近。

为了叙述方便,现在假设分类任务是二分类,分别是0、1类。第二个目标类间距离可以直接比较类内中点之间的距离测度,定义类间距为中点的Euclidean Distance平方:Dis(0,1)=|wTμ0wTμ1|2来衡量。我们希望这个值尽可能大

定义:Sw=Σ0+Σ1Sb=Dis(0,1)

同时考虑上述两个指标,于是做商合成一个目标函数(突然想起自己的paper里也搞过这种设计):
J=SbSw=|wTμ0wwTμ1|2wTΣ0w+wTΣ1w

=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w

目标即为通过调整w最大化JSbSw的比值称为“广义瑞利商”。由于分子和分布都是关于w的二次项,因此解只与w的方向有关。方程等价于优化下式:
minwwTSbw

st. wTSww=1

这是个带约束的极值求解问题,可以用高数中学过的拉格朗日乘数法解决,构造拉格朗日函数:
L(w)=wTSbw+λ(wTSww1)


令上式的导数得0,即可得:
w=S1w(μ0μ1)

问题转换成求解Sw的逆。注意该阵通常情况下不可逆,原因是数据维数和数据条目数通常是不匹配,就是说数据集并不能确定地体现数据的分布情况。

书上介绍的实际是PCA方法,直接给Sw进行SVD分解,得到Sw=UΣVT,于是S1w=(UΣVT)1=VΣ1UT

最终我们可推得:
w=VΣ1UT(μ0μ1)

Code 401: 未经授权的操作,请检查你的AppId和AppKey.
Powered By Valine
v1.5.2