线性判别分析(Linear Discriminant Analysis,LDA)是一种有监督学习算法,同时经常被用来对数据进行降维。
线性判别分析
Fisher的基本思想是:类内小,类间大。也就是说,我们要让属于同一类的样本映射到某一条直线上后的距离越小越好,而不同类样本之间的距离要越大越好。所以我们需要训练这样一条直线,把p维的样本数据都投影到一个1维的方向,使得不同的样本在降维后的一维空间内具有“类内小,类间大”的结果,从而很好地将两类数据分开。
在预测时,将待预测数据投影到上面学习到的直线上,根据投影点的位置来判断所属于的类别。
假设我们找到了最好的投影方向
w
w
w,如果不对其做限定的话,这样的w可以有无数条,所以我们限定
∣
∣
w
∣
∣
=
1
||w||=1
∣∣w∣∣=1。将样本点
x
i
x_i
xi投影到向量w上,得到新的点
z
i
z_i
zi,有
z
i
=
∣
x
i
∣
c
o
s
θ
=
∣
x
i
∣
∣
w
∣
c
o
s
θ
=
w
T
x
i
.
.
.
.
.
.
.
.
.
.
(
1
)
z_i=|x_i|cos\theta=|x_i||w|cos\theta=w^Tx_i..........(1)
zi=∣xi∣cosθ=∣xi∣∣w∣cosθ=wTxi..........(1)
则其总体均值为
z
ˉ
=
1
N
∑
i
=
1
N
w
T
x
i
.
.
.
.
.
.
.
.
.
.
(
2
)
\bar z=\frac{1}{N}\sum_{i=1}^Nw^Tx_i..........(2)
zˉ=N1i=1∑NwTxi..........(2)
总体方差为
S
z
=
1
N
∑
i
=
1
N
(
w
T
x
i
−
z
ˉ
)
(
w
T
x
i
−
z
ˉ
)
T
.
.
.
.
.
.
.
.
.
.
(
3
)
S_z=\frac{1}{N}\sum_{i=1}^N(w^Tx_i-\bar z)(w^Tx_i-\bar z)^T..........(3)
Sz=N1i=1∑N(wTxi−zˉ)(wTxi−zˉ)T..........(3)
假设两类样本分别用
c
1
c_1
c1和
c
2
c_2
c2表示,则
z
ˉ
1
=
1
N
1
∑
i
=
1
N
1
w
T
x
i
.
.
.
.
.
.
.
.
.
.
(
4
)
z
ˉ
2
=
1
N
2
∑
i
=
1
N
2
w
T
x
i
.
.
.
.
.
.
.
.
.
.
(
5
)
S
1
=
1
N
1
∑
i
=
1
N
1
(
w
T
x
i
−
z
ˉ
1
)
(
w
T
x
i
−
z
ˉ
1
)
T
.
.
.
.
.
.
.
.
.
.
(
6
)
S
2
=
1
N
2
∑
i
=
1
N
2
(
w
T
x
i
−
z
ˉ
2
)
(
w
T
x
i
−
z
ˉ
2
)
T
.
.
.
.
.
.
.
.
.
.
(
7
)
\bar z_1=\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i..........(4) \\ \bar z_2=\frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i..........(5) \\ S_1=\frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T..........(6) \\ S_2=\frac{1}{N_2}\sum_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T..........(7)
zˉ1=N11i=1∑N1wTxi..........(4)zˉ2=N21i=1∑N2wTxi..........(5)S1=N11i=1∑N1(wTxi−zˉ1)(wTxi−zˉ1)T..........(6)S2=N21i=1∑N2(wTxi−zˉ2)(wTxi−zˉ2)T..........(7)
我们可以使两类样本的均值差最大来表示“类间大”,两类样本的方差和最小来表示“类内小”。因此我们可以将其构造成一个目标函数:
J
(
w
)
=
(
z
ˉ
1
−
z
ˉ
2
)
2
(
S
1
+
S
2
)
.
.
.
.
.
.
.
.
.
.
(
8
)
J(w)=\frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)}..........(8)
J(w)=(S1+S2)(zˉ1−zˉ2)2..........(8)
则有
w
^
=
arg
max
w
J
(
w
)
=
arg
max
w
(
z
ˉ
1
−
z
ˉ
2
)
2
(
S
1
+
S
2
)
=
arg
max
w
(
1
N
1
∑
i
=
1
N
1
w
T
x
i
−
1
N
2
∑
i
=
1
N
2
w
T
x
i
)
2
(
1
N
1
∑
i
=
1
N
1
(
w
T
x
i
−
z
ˉ
1
)
(
w
T
x
i
−
z
ˉ
1
)
T
+
1
N
2
∑
i
=
1
N
2
(
w
T
x
i
−
z
ˉ
2
)
(
w
T
x
i
−
z
ˉ
2
)
T
)
=
arg
max
w
(
w
T
(
1
N
1
∑
i
=
1
N
1
x
i
−
1
N
2
∑
i
=
1
N
2
x
i
)
)
2
1
N
1
∑
i
=
1
N
1
w
T
(
x
i
−
x
ˉ
c
1
)
(
x
i
−
x
ˉ
c
1
)
T
w
+
1
N
2
∑
i
=
1
N
2
w
T
(
x
i
−
x
ˉ
c
2
)
(
x
i
−
x
ˉ
c
2
)
w
=
arg
max
w
(
w
T
(
x
ˉ
c
1
−
x
ˉ
c
2
)
)
2
w
T
S
c
1
w
+
w
T
S
c
2
w
=
arg
max
w
w
T
(
x
ˉ
c
1
−
x
ˉ
c
2
)
(
x
ˉ
c
1
−
x
ˉ
c
2
)
T
w
w
T
(
S
c
1
+
S
c
2
)
w
\begin{aligned} \hat w &=\arg \max_wJ(w) \\ &=\arg \max_w \frac{(\bar z_1-\bar z_2)^2}{(S_1+S_2)} \\ &=\arg \max_w \frac{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^Tx_i)^2}{(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(w^Tx_i-\bar z_1)(w^Tx_i-\bar z_1)^T+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}(w^Tx_i-\bar z_2)(w^Tx_i-\bar z_2)^T)} \\ &=\arg \max_w \frac{(w^T(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}x_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}x_i))^2}{\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^T(x_i-\bar x_{c1})(x_i-\bar x_{c1})^Tw+\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^T(x_i-\bar x_{c2})(x_i-\bar x_{c2})w} \\ &=\arg \max_w \frac{(w^T(\bar x_{c1}-\bar x_{c2}))^2}{w^TS_{c1}w+w^TS_{c2}w} \\ &=\arg \max_w \frac{w^T(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^Tw}{w^T(S_{c1}+S_{c2})w} \end{aligned}
w^=argwmaxJ(w)=argwmax(S1+S2)(zˉ1−zˉ2)2=argwmax(N11i=1∑N1(wTxi−zˉ1)(wTxi−zˉ1)T+N21i=1∑N2(wTxi−zˉ2)(wTxi−zˉ2)T)(N11i=1∑N1wTxi−N21i=1∑N2wTxi)2=argwmaxN11i=1∑N1wT(xi−xˉc1)(xi−xˉc1)Tw+N21i=1∑N2wT(xi−xˉc2)(xi−xˉc2)w(wT(N11i=1∑N1xi−N21i=1∑N2xi))2=argwmaxwTSc1w+wTSc2w(wT(xˉc1−xˉc2))2=argwmaxwT(Sc1+Sc2)wwT(xˉc1−xˉc2)(xˉc1−xˉc2)Tw
令
S
b
=
(
x
ˉ
c
1
−
x
ˉ
c
2
)
(
x
ˉ
c
1
−
x
ˉ
c
2
)
T
.
.
.
.
.
.
.
.
.
.
(
9
)
S
w
=
(
S
c
1
+
S
c
2
)
.
.
.
.
.
.
.
.
.
.
(
10
)
S_b=(\bar x_{c1}-\bar x_{c2})(\bar x_{c1}-\bar x_{c2})^T..........(9) \\ S_w=(S_{c1}+S_{c2})..........(10)
Sb=(xˉc1−xˉc2)(xˉc1−xˉc2)T..........(9)Sw=(Sc1+Sc2)..........(10)
S
b
S_b
Sb称为类间散度矩阵,
S
w
S_w
Sw称为类内散度矩阵,则
J
(
w
)
=
w
T
S
b
w
w
T
S
w
w
.
.
.
.
.
.
.
.
.
(
11
)
J(w)=\frac{w^TS_bw}{w^TS_ww} .........(11)
J(w)=wTSwwwTSbw.........(11)
上式为广义瑞利熵的形式,利用广义瑞利商性质J(w)最大值为矩阵
S
b
−
1
/
2
S
w
S
b
−
1
/
2
S_b^{-1/2}S_wS_b^{-1/2}
Sb−1/2SwSb−1/2的最大特征值,而对应的w为的最大特征值对应的特征向量。
也可以不考虑广义瑞利熵,式子11对
w
w
w求偏导,并令导数为0 ,有
(
w
T
S
w
w
)
S
b
w
=
(
w
T
S
b
w
)
S
w
w
.
.
.
.
.
.
.
.
.
.
(
12
)
(w^TS_ww)S_bw=(w^TS_bw)S_ww..........(12)
(wTSww)Sbw=(wTSbw)Sww..........(12)
因为在简化的二分类问题中,
w
T
S
b
w
w^TS_bw
wTSbw和
w
T
S
w
w
w^TS_ww
wTSww都是实数,所以有
S
b
w
=
J
(
w
)
S
w
w
S_bw=J(w)S_ww
Sbw=J(w)Sww
整理得
S
w
−
1
S
b
w
=
J
(
w
)
w
.
.
.
.
.
.
.
.
.
.
(
13
)
S_w^{-1}S_bw=J(w)w..........(13)
Sw−1Sbw=J(w)w..........(13)
从式子13可以看出,我们要最大化的目标
j
(
w
)
j(w)
j(w)对应了矩阵
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb的最大特征值,而投影方向就是这个特征值对应的特征向量。
二分类的LDA到这里就结束了。而如果扩展到N分类呢?扩展到N分类后,我们希望将特征降到d维,让投影后的样本点仍然满足最大化类间距离和最小化类内距离。类内散度矩阵
S
w
S_w
Sw扩展到n维后仍然满足定义,而类间散度矩阵
S
b
S_b
Sb则不满足,我们需要做一些小小的变化。定义全局散度矩阵
S
t
=
∑
i
=
1
n
(
x
i
−
μ
)
(
x
i
−
μ
)
T
S_t=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T
St=i=1∑n(xi−μ)(xi−μ)T
其中
μ
\mu
μ是N类样本中心的均值。重新定义
S
t
=
S
b
+
S
w
S_t=S_b+S_w
St=Sb+Sw,则
S
b
=
S
t
−
S
w
=
∑
i
=
1
n
(
x
i
−
μ
)
(
x
i
−
μ
)
T
−
∑
x
∈
C
i
(
x
i
−
μ
i
)
(
x
i
−
μ
i
)
T
=
∑
j
=
1
N
(
∑
x
∈
C
i
(
x
i
−
μ
)
(
x
i
−
μ
)
T
−
∑
x
∈
C
i
(
x
i
−
μ
i
)
(
x
i
−
μ
i
)
T
)
=
∑
j
=
1
N
m
j
(
μ
j
−
μ
)
(
μ
j
−
μ
)
T
\begin{aligned} S_b &=S_t-S_w \\ &=\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\\ &=\sum_{j=1}^N\left(\sum_{x \in C_i}(x_i-\mu)(x_i-\mu)^T-\sum_{x \in C_i}(x_i-\mu_i)(x_i-\mu_i)^T\right)\\ &=\sum_{j=1}^Nm_j(\mu_j-\mu)(\mu_j-\mu)^T \end{aligned}
Sb=St−Sw=i=1∑n(xi−μ)(xi−μ)T−x∈Ci∑(xi−μi)(xi−μi)T=j=1∑N(x∈Ci∑(xi−μ)(xi−μ)T−x∈Ci∑(xi−μi)(xi−μi)T)=j=1∑Nmj(μj−μ)(μj−μ)T
其中
m
j
m_j
mj是第j个类别中的样本个数,N是总类别数。根据LDA,最大化目标为
J
(
W
)
=
t
r
(
W
T
S
b
W
)
t
r
(
W
T
S
w
W
)
,
s
.
t
.
W
T
W
=
I
J(W)=\frac{tr(W^TS_bW)}{tr(W^TS_wW)} ,\quad s.t. W^TW=I
J(W)=tr(WTSwW)tr(WTSbW),s.t.WTW=I
最大化J(W)对应了以下广义特征值的求解,即
S
b
w
=
λ
S
w
w
S_bw=\lambda S_ww
Sbw=λSww
通过求解
S
w
−
1
S
b
S_w^{-1}S_b
Sw−1Sb矩阵的前k个最大特征向量组成的矩阵,得到W,从而能够将原始的特征空间投影到新的d维空间中。
LDA与PCA
- PCA选取的是投影后数据方差最大的方向,由于PCA是无监督学习,他假设方差越大,信息越多,使用主成分来达到降维。
- LDA选择的是投影后类内方差小,类间方差大的方向,属于有监督学习。
- 从应用的角度,对无监督的学习应该使用PCA进行降维,对有监督的则应用LDA。