LDA是一种有监督的降维和分类算法,其主要思想是投影后类内方差最小,类间方差最大。
二分类情况
类间离散度定义为:
(
μ
~
1
−
μ
~
2
)
2
=
(
w
T
μ
1
−
w
T
μ
2
)
2
=
w
T
(
μ
1
−
μ
2
)
(
μ
1
−
μ
2
)
T
w
=
w
T
S
B
w
(\tilde \mu _1 - \tilde \mu _2 )^2 = (w^T \mu _1 - w^T \mu _2 )^2 = w^T (\mu _1 - \mu _2 )(\mu _1 - \mu _2 )^T w = w^T S_B w
(μ~1−μ~2)2=(wTμ1−wTμ2)2=wT(μ1−μ2)(μ1−μ2)Tw=wTSBw
其中
S
B
S_B
SB为类间离散度矩阵
类内离散度定义为:
S
i
=
∑
x
∈
w
i
(
x
−
μ
i
)
(
x
−
μ
i
)
T
S
w
=
S
1
+
S
2
S_i = \sum\limits_{x \in w_i } {(x - \mu _i )} (x - \mu _i )^T \\ S_w = S_1 + S_2
Si=x∈wi∑(x−μi)(x−μi)TSw=S1+S2
S
w
S_w
Sww为类内离散度矩阵
则LDA的度量公式为:
J
(
w
)
=
w
T
S
B
w
w
T
S
w
w
J(w) = \frac{{w^T S_B w}}{{w^T S_w w}}
J(w)=wTSwwwTSBw
找到使
J
(
w
)
J(w)
J(w)最大的
w
w
w即可。
令
∥
w
T
S
w
w
∥
=
1
\left\| {w^T S_w w} \right\| = 1
∥∥wTSww∥∥=1,加入拉格朗日乘子后求导化简得:
w
=
S
w
−
1
(
μ
1
−
μ
2
)
w = S_w ^{ - 1} (\mu _1 - \mu _2 )
w=Sw−1(μ1−μ2)
多分类情况
类内离散度矩阵不变,类间类散度矩阵变为:
S
B
=
∑
i
=
1
N
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
S_B = \sum\limits_{i = 1}^N {m_i (\mu _i - \mu )(\mu _i - \mu )^T }
SB=i=1∑Nmi(μi−μ)(μi−μ)T
是带权重得各类样本中心到全样本中心得散列矩阵。
目标函数为:
J
(
w
)
=
W
T
S
B
W
W
T
S
w
W
J(w) = \frac{{W^T S_B W}}{{W^T S_w W}}
J(w)=WTSwWWTSBW
和二分类一样,固定分母为1,求导化简之后得到:
λ
W
=
S
w
−
1
S
B
W
\lambda W = S_w ^{ - 1} S_B W
λW=Sw−1SBW
最后归结为求矩阵得特征值。首先求出
S
w
−
1
S
B
S_w ^{ - 1} S_B
Sw−1SB得特征值,然后取前k个特征向量组成W矩阵即可。特征值大的对应的特征向量分割性能最好。
由于 S w − 1 S B S_w ^{ - 1} S_B Sw−1SB不一定是对称阵,因此得到的k个特征向量不一定正交,这也是和PCA不同的地方。
Notation:
LDA不适合对非高斯分布样本进行降维;
在样本分类信息中依赖方差而不是均值;
可能会过度拟合数据。