1.LDA原理
1.1 概念
\hspace{0.5cm}
LDA全称为Linear Discriminant Analysis,中文为线性判别分析。与PCA的作用相同,LDA的作用是降维,但是区别是PCA是无监督降维,而LDA是有监督的降维,LDA可以利用训练数据的类别标签。PCA只需要将数据映射到方差最大的空间,LDA需要将类别相同的数据尽可能靠近,类别不同时则需要分开点。这两个目标可以形式化为:
1.不同类别数据投影过后方差越大越好
2.同类样本的类间方差越小越好
1.2 公式推导
\hspace{0.5cm} LDA是将数据投影到多条直线上来实现降维,假设数据为D,以二分类为例,投影的直线为W,投影后的数据为Y,则 Y = w T X Y = w^{T}X Y=wTX
\hspace{0.5cm} 设 D i D_{i} Di为属于类别i的数据集合,类别 D i D_{i} Di的中心坐标为 m i m_{i} mi= 1 l e n ( D i ) ∑ x ∈ D i x \frac{1}{len(D_{i})}\sum_{x\in D_{i}}x len(Di)1∑x∈Dix, m i m_{i} mi的投影后的数据为 m i ~ \tilde{m_{i}} mi~= W T m i W_{T}m_{i} WTmi,对于类别i,类内的分离程度(方差)为: S i ~ \tilde{S_{i}} Si~= ∑ y ∈ Y i ( y − m i ~ ) 2 \sum_{y\in Y_{i}}(y-\tilde{m_{i}})^{2} ∑y∈Yi(y−mi~)2
\hspace{0.5cm} LDA的表达式为: J ( w ) J(w) J(w)= ∣ m 1 ~ − m 2 ~ ∣ 2 S i ~ 2 + S i ~ 2 \frac{|\tilde{m_{1}}-\tilde{m_{2}}|^{2}}{\tilde{S_{i}}^{2}+\tilde{S_{i}}^{2}} Si~2+Si~2∣m1~−m2~∣2,这个表达式的分子是指类间距离,分母是类内距离。最大化类间误差并最小化类内误差,所以只要max J ( w ) J(w) J(w)就可以了。
\hspace{0.5cm} 由 S i = ∑ x ∈ D i ( x − m i ) ( x − m i ) T S_{i}=\sum_{x\in D_{i}}(x-m_{i})(x-m_{i})^{T} Si=∑x∈Di(x−mi)(x−mi)T,得 S i ~ = ∑ x ∈ D i ( w T x − w T m i ) 2 = ∑ x ∈ D i w T ( x − m i ) ( x − m i ) T w = w T S i w \tilde{S_{i}}=\sum_{x\in D_{i}}(w_{T}x-w_{T}m_{i})^{2}=\sum_{x\in D_{i}}w^{T}(x-m_{i})(x-m_{i})^{T}w=w^{T}S_{i}w Si~=∑x∈Di(wTx−wTmi)2=∑x∈DiwT(x−mi)(x−mi)Tw=wTSiw
\hspace{0.5cm} 因为 S i ~ 2 + S i ~ 2 = w T ( S 1 + S 2 ) w = w T S w w \tilde{S_{i}}^{2}+\tilde{S_{i}}^{2}=w^{T} (S_{1}+S_{2})w=w^{T}S_{w}w Si~2+Si~2=wT(S1+S2)w=wTSww, ∣ m 1 ~ − m 2 ~ ∣ 2 = w T ( m 1 − m 2 ) ( m 1 − m 2 ) T w = w T S B w |\tilde{m_{1}}-\tilde{m_{2}}|^{2}=w^{T}(m_{1}-m_{2})(m_{1}-m_{2})^{T}w=w^{T}S_{B}w ∣m1~−m2~∣2=wT(m1−m2)(m1−m2)Tw=wTSBw,最终上式可以转化为 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,这个被称为广义瑞利商
\hspace{0.5cm}
求解J关于w的导数并置其为0,
α
(
J
)
α
(
w
)
=
2
(
(
w
T
S
w
w
)
S
B
w
−
(
w
T
S
B
w
)
S
w
w
)
(
w
T
S
w
w
)
2
=
0
\frac{\alpha(J)}{\alpha(w)}=\frac{2((w^{T}S_{w}w)S_{B}w-(w^{T}S_{B}w)S_{w}w)}{(w^{T}S_{w}w)^{2}}=0
α(w)α(J)=(wTSww)22((wTSww)SBw−(wTSBw)Sww)=0
\hspace{0.5cm}
得到最优的条件是:
S
B
w
=
w
T
S
B
w
w
T
S
w
w
S
w
w
S_{B}w=\frac{w^{T}S_{B}w}{w_{T}S_{w}w}S_{w}w
SBw=wTSwwwTSBwSww,所以w是
S
B
S_{B}
SB与
S
w
S_{w}
Sw的广义特征向量,
w
T
S
B
w
w
T
S
w
w
\frac{w_{T}S_{B}w}{w^{T}S_{w}w}
wTSwwwTSBw是其对应的广义特征值。对于二分类,整理上式可以得到
S
W
w
=
w
T
S
w
w
w
T
S
B
w
(
m
1
−
m
2
)
(
m
1
−
m
2
)
T
w
=
w
T
S
w
w
w
T
S
B
w
(
m
1
−
m
2
)
T
w
(
m
1
−
m
2
)
=
c
(
m
1
−
m
2
)
S_{W}w=\frac{w_{T}S_{w}w}{w_{T}S_{B}w}(m_{1}-m_{2})(m_{1}-m_{2})^{T}w= \frac{w_{T}S_{w}w}{w_{T}S_{B}w}(m_{1}-m_{2})^{T}w(m_{1}-m_{2})=c(m_{1}-m_{2})
SWw=wTSBwwTSww(m1−m2)(m1−m2)Tw=wTSBwwTSww(m1−m2)Tw(m1−m2)=c(m1−m2),c为一个标量值,所以w的方向为:
S
w
−
1
(
m
1
−
m
2
)
S_{w}^{-1}(m_{1}-m_{2})
Sw−1(m1−m2)
\hspace{0.5cm}
上述求解方法的假设是
S
w
S_{w}
Sw可逆。当
S
w
S_{w}
Sw不可逆时,可以使用Moore-Penrose方法求解伪逆来代替矩阵的逆,
S
w
S_{w}
Sw的伪逆是:
S
W
+
=
E
∧
+
E
T
S_{W}^{+}=E\land^{+}E^{T}
SW+=E∧+ET,定义一个公式,
x
+
=
{
0
i
f
x
=
0
1
x
o
t
h
e
r
w
i
s
e
x^{+}=\left\{ \begin{aligned} & 0 & if x=0 \\ & \frac{1}{x} & otherwise \end{aligned} \right.
x+=⎩⎨⎧0x1ifx=0otherwise
当
S
W
S_{W}
SW可逆时,
S
W
+
=
S
W
−
1
S_{W}^{+}=S_{W}^{-1}
SW+=SW−1。
此外还可以用拉格朗日方法解这个问题,一些先验知识如下,
S
w
=
∑
i
=
1
c
S
i
S_{w}=\sum_{i=1}^{c}S_{i}
Sw=∑i=1cSi,全局散度
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=1n(xi−μ)(xi−μ)T,全局散度=类内散度+类间散度,所以
S
B
=
S
t
−
S
w
S_{B}=S_{t}-S_{w}
SB=St−Sw,
S
B
=
∑
i
=
1
c
m
i
(
μ
i
−
μ
)
(
μ
i
−
μ
)
T
S_{B}=\sum_{i=1}^{c}m_{i}(\mu_{i}-\mu)(\mu_{i}-\mu)^{T}
SB=∑i=1cmi(μi−μ)(μi−μ)T,对上式求解可得到特征值与特征向量可得w
2.LDA实现
\hspace{0.5cm}
首先如下图得到待FLD处理的数据点
对于这种数据,知其w=
S
w
−
1
(
m
1
−
m
2
)
S_{w}^{-1}(m_{1}-m_{2})
Sw−1(m1−m2),首先对
S
w
S_{w}
Sw用奇异值分解为
S
w
=
U
∑
V
T
S_{w}=U\sum V^{T}
Sw=U∑VT,得到
S
w
−
1
=
V
∑
−
1
U
T
S_{w}^{-1}=V\sum ^{-1}U^{T}
Sw−1=V∑−1UT
u, s, v = np.linalg.svd(s_w)
s_w_inv = np.dot(np.dot(v.T, np.linalg.inv(np.diag(s))), u.T)
由此可以得到w
参考资料
[1].https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
[2].https://blog.csdn.net/liuweiyuxiang/article/details/78874106
[3].https://chenrudan.github.io/blog/2016/04/01/dimensionalityreduction.html#3.3
[4].https://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html