西瓜书第3章之LDA
3.3.1 LDA(线性判别分析-----二分类)
给定训练集,将样本投影到一条直线上,使得投影后的异类样本尽可能远离
a
r
g
m
a
x
(
∣
∣
w
T
u
0
−
w
T
u
1
∣
∣
)
argmax(||w^Tu_0-w^Tu_1||)
argmax(∣∣wTu0−wTu1∣∣)同类样本尽可能靠近
a
r
g
m
i
n
(
w
T
∑
0
w
+
w
T
∑
1
w
)
argmin(w^T\sum_0w+w^T\sum_1w)
argmin(wT0∑w+wT1∑w)使得对新样本进行分类时,对其投影到这条直线上,根据投影位置确定类别。其中
X
i
,
u
i
,
∑
i
分
别
表
示
示
例
集
合
、
均
值
向
量
、
协
方
差
矩
阵
。
X_i,u_i,\sum_i分别表示示例集合、均值向量、协方差矩阵。
Xi,ui,∑i分别表示示例集合、均值向量、协方差矩阵。
即
J
=
∣
∣
w
T
u
0
−
w
T
u
1
∣
∣
2
w
T
∑
0
w
+
w
T
∑
1
w
=
w
T
(
u
0
−
u
1
)
(
u
0
−
u
1
)
T
w
w
T
(
∑
0
+
∑
1
)
w
J= \frac{||w^Tu_0-w^Tu_1||^2}{w^T\sum_0w+w^T\sum_1w} \\ = \frac{w^T(u_0-u_1)(u_0-u_1)^Tw}{w^T(\sum_0+\sum_1)w}
J=wT∑0w+wT∑1w∣∣wTu0−wTu1∣∣2=wT(∑0+∑1)wwT(u0−u1)(u0−u1)Tw
定义类内散度矩阵
令
S
w
=
∑
0
+
∑
1
=
∑
x
∈
X
0
(
x
−
u
0
)
(
x
−
u
0
)
T
+
∑
x
∈
X
1
(
x
−
u
1
)
(
x
−
u
1
)
T
令S_w = \sum_0+\sum_1 \\ = \sum_{x\in X_0}(x-u_0)(x-u_0)^T+\sum_{x\in X_1}(x-u_1)(x-u_1)^T
令Sw=0∑+1∑=x∈X0∑(x−u0)(x−u0)T+x∈X1∑(x−u1)(x−u1)T
定义类间散度矩阵
令
S
b
=
(
u
0
−
u
1
)
(
u
0
−
u
1
)
T
令S_b=(u_0-u_1)(u_0-u_1)^T
令Sb=(u0−u1)(u0−u1)T
则目标为确定J最大时w的值
J
=
w
T
S
b
w
w
T
S
w
w
J=\frac{w^TS_bw}{w^TS_ww}
J=wTSwwwTSbw
令
w
T
S
w
w
=
1
w^TS_ww=1
wTSww=1原式变为
m
i
n
(
−
w
T
S
b
w
)
min (-w^TS_bw)
min(−wTSbw)
s
.
t
.
w
T
S
w
w
=
1
s.t.w^TS_ww=1
s.t.wTSww=1
根据拉格朗日乘子式可得
J
=
−
w
T
S
b
w
+
λ
(
w
T
S
w
w
−
1
)
J=-w^TS_bw+\lambda (w^TS_ww-1)
J=−wTSbw+λ(wTSww−1)
∂
J
∂
w
=
0
S
b
w
=
λ
S
w
w
(
u
0
−
u
1
)
(
u
0
−
u
1
)
T
w
=
λ
S
w
w
\frac{\partial J}{\partial w}= 0 \\ S_bw=\lambda S_ww \\ (u_0-u_1)(u_0-u_1)^Tw=\lambda S_ww \\
∂w∂J=0Sbw=λSww(u0−u1)(u0−u1)Tw=λSww因为
(
u
0
−
u
1
)
T
w
(u_0-u_1)^Tw
(u0−u1)Tw为常数,设为
λ
w
\lambda_{w}
λw得
(
u
0
−
u
1
)
λ
w
=
λ
S
w
w
(u_0-u_1)\lambda_w=\lambda S_ww
(u0−u1)λw=λSww常数
λ
λ
w
只
是
对
w
的
放
大
或
缩
小
,
所
以
删
掉
得
\lambda \lambda_w只是对w的放大或缩小,所以删掉得
λλw只是对w的放大或缩小,所以删掉得
w
∗
=
S
w
−
1
(
u
0
−
u
1
)
w^*=S_w^{-1}(u_0-u_1)
w∗=Sw−1(u0−u1)
若存在
S
w
S_w
Sw不可逆,则利用奇异值分解(SVD)来求得。
3.3.2 LDA(多分类问题)
对于多分类的问题,
m
i
m_i
mi表示第i类样本的个数。μ 为所有样本的样本均值,而
u
i
u_i
ui则表示第i类样本的样本均值。此时我们得到的都是矩阵而不再是二分类的实数。类间散度矩阵:
S
b
=
∑
i
=
1
N
m
i
(
u
i
−
u
)
(
u
i
−
u
)
T
S_b=\sum_{i=1}^Nm_i(u_i-u)(u_i-u)^T
Sb=i=1∑Nmi(ui−u)(ui−u)T类内散度矩阵:
S
w
=
∑
i
=
1
N
∑
x
∈
X
i
(
x
−
u
i
)
(
x
−
u
i
)
T
S_w=\sum_{i=1}^N\sum_{x\in X_i}(x-u_i)(x-u_i)^T
Sw=i=1∑Nx∈Xi∑(x−ui)(x−ui)T
优化目标为
J
m
a
x
=
∣
W
T
S
b
W
∣
∣
W
T
S
w
W
∣
J_{max}=\frac{|W^TS_bW|}{|W^TS_wW|}
Jmax=∣WTSwW∣∣WTSbW∣或
J
m
a
x
=
t
r
(
W
T
S
b
W
)
t
r
(
W
T
S
w
W
)
J_{max}=\frac{tr(W^TS_bW)}{tr(W^TS_wW)}
Jmax=tr(WTSwW)tr(WTSbW)
参照二分类求解,可转化为
S
b
W
=
λ
S
w
W
λ
=
S
w
−
1
S
b
S_bW= \lambda S_wW \\ \lambda= S_w^{-1}S_b
SbW=λSwWλ=Sw−1Sb
W
∗
=
J
m
a
x
=
∣
W
T
S
b
W
∣
∣
W
T
S
w
W
∣
=
∣
W
T
λ
S
w
W
∣
∣
W
T
S
w
W
∣
=
λ
W^*=J_{max}= \frac{|W^TS_bW|}{|W^TS_wW|} \\ = \frac{|W^T\lambda S_wW|}{|W^TS_wW|} \\ = \lambda
W∗=Jmax=∣WTSwW∣∣WTSbW∣=∣WTSwW∣∣WTλSwW∣=λ
S
b
=
∑
i
=
1
N
m
i
(
u
i
−
u
)
(
u
i
−
u
)
T
S_b=\sum_{i=1}^Nm_i(u_i-u)(u_i-u)^T
Sb=i=1∑Nmi(ui−u)(ui−u)T
可以看出,
S
b
S_b
Sb是K个秩一矩阵
(
m
k
−
m
)
(
m
k
−
m
)
T
(m_k-m)(m_k-m)^T
(mk−m)(mk−m)T的和(因为
(
m
k
−
m
)
(m_k-m)
(mk−m)是秩一的向量),所以它的秩最大为K。并
N
m
=
N
1
m
1
+
N
2
m
2
+
…
+
N
k
m
k
Nm=N_1m_1+N_2m_2+\ldots+N_km_k
Nm=N1m1+N2m2+…+Nkmk,这K项中有一项可以被线性表出。 所以,
S
b
S_b
Sb的秩最大为K-1。
所以参数W的值闭式解为矩阵
S
ω
−
1
S
b
S^{−1}_ωS_b
Sω−1Sb的d个最大特征值所对应的特征向量,其中d<=c-1。因为特征向量的个数通常要远远少于原有数据特征的个数,因此线性判别分析也被视为一种经典的监督降维技术。