LDA原理与实现

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)1xDix 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} yYi(ymi~)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~2m1~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=xDi(xmi)(xmi)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~=xDi(wTxwTmi)2=xDiwT(xmi)(xmi)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(m1m2)(m1m2)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(m1m2)(m1m2)Tw=wTSBwwTSww(m1m2)Tw(m1m2)=c(m1m2),c为一个标量值,所以w的方向为: S w − 1 ( m 1 − m 2 ) S_{w}^{-1}(m_{1}-m_{2}) Sw1(m1m2)

\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+=SW1
此外还可以用拉格朗日方法解这个问题,一些先验知识如下, 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} Sti=1n(xiμ)(xiμ)T,全局散度=类内散度+类间散度,所以 S B = S t − S w S_{B}=S_{t}-S_{w} SB=StSw 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}) Sw1(m1m2),首先对 S w S_{w} Sw用奇异值分解为 S w = U ∑ V T S_{w}=U\sum V^{T} Sw=UVT,得到 S w − 1 = V ∑ − 1 U T S_{w}^{-1}=V\sum ^{-1}U^{T} Sw1=V1UT

 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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值