LDA降维

还记得在PCA中是怎样做的吗?简单来说,是将数据映射到方差比较大的方向上,最后用数学公式推导出矩阵的前TopN的特征向量,这里的方差可以理解为数据内部的离散程度。而LDA不同于PCA的是它是一种有监督的降维方法。下面举一个小例子来直观的说明PCA和LDA的不同降维方法。

例子

如下图所示为两类数据集:

img

PCA是将数据投影到方差最大的几个相互正交的方向上,以期待保留最多的样本信息。样本的方差越大表示样本的多样性越好。x轴和y轴都不是最理想的投影,故上图中PCA会将数据投影在红色的轴上。

如下图所示数据集:

img

若根据PCA进行降维,将会把数据映射到红色直线上,这样做投影确实方差最大,但是这样做投影之后两类数据样本将混合在一起,将不再线性可分,甚至是不可分的。上面的这个数据集如果使用LDA降维,找出的投影方向就是黄色直线所在的方向,这样的方法在降维之后,可以很大程度上保证了数据的线性可分的。

LDA降维

从上述例子中可以看到,LDA可以用来对数据分类进行处理。为了说明白LDA的来龙去脉,还是以最简单的二分类问题为例。

假设有C1和C2两个样本数据集,其均值分别为:

μ 1 = 1 N 1 ∑ x ∈ C 1 x μ 2 = 1 N 2 ∑ x ∈ C 2 x \begin{aligned}\mu_1&=\frac{1}{N_1}\sum_{x\in C_1}x\\\\\mu_2&=\frac{1}{N_2}\sum_{x\in C_2}x\end{aligned} μ1μ2=N11xC1x=N21xC2x

投影之后的类间距离为:
D ( C 1 , C 2 ) = ∣ ∣ μ 1 ~ − μ 2 ~ ∣ ∣ 2 2 \mathrm{D}(C_{1},C_{2})=||\widetilde{\mu_{1}}-\widetilde{\mu_{2}}||_{2}^{2} D(C1,C2)=∣∣μ1 μ2 22

其中成和或为两个类中心在方向上的投影向量

μ 1 ~ = ω T μ 1 μ 2 ~ = ω T μ 2 \begin{array}{l}\widetilde{\mu_1}=\omega^T\mu_1\\\widetilde{\mu_2}=\omega^T\mu_2\end{array} μ1 =ωTμ1μ2 =ωTμ2

将上述两式合并,求最大间距可以表示为:

{ max ⁡ ω ∣ ∣ ω T ( μ 1 − μ 2 ) ∣ ∣ 2 2 s . t . ω T ω = 1 \left\{\begin{matrix}\max_\omega||\omega^T(\mu_1-\mu_2)||_2^2\\\\s.t.&\omega^T\omega=1\end{matrix}\right. maxω∣∣ωT(μ1μ2)22s.t.ωTω=1

当 ω 方向与(μ1-μ2)一致的时候,该距离达到最大值。从所举的例子图中也能看出,我LDA的期望是使得两个类间的距离最大,类内的距离最小。

由于不同的类别是在同一个数据集中,所以类内距离也可以定义为不同类的方差之和。故可以定义LDA的目标函数为:

max ⁡ ω J ( ω ) = ∥ ω T ( μ 1 − μ 2 ) ∥ 2 2 D 1 + D ’ 2 \max_{\omega}J(\omega)=\frac{\left\|\omega^{\mathrm{T}}\left(\mu_{1}-\mu_{2}\right)\right\|_{2}^{2}}{D_{1}+D_{\text{'}2}} maxωJ(ω)=D1+D2ωT(μ1μ2)22

其中D1和D2分别为两个类的类内距离,分别为:

D 1 = ∑ x ∈ C 1 ω T ( x − μ 1 ) ( x − μ 1 ) T ω D 2 = ∑ x ∈ C 2 ω T ( x − μ 2 ) ( x − μ 2 ) T ω \begin{gathered} D_{1} =\sum_{x\in C_{1}}\omega^{T}(x-\mu_{1})(x-\mu_{1})^{T}\omega \\ D_{2} =\sum_{x\in C_{2}}\omega^{T}(x-\mu_{2})(x-\mu_{2})^{T}\omega \end{gathered} D1=xC1ωT(xμ1)(xμ1)TωD2=xC2ωT(xμ2)(xμ2)Tω

将D1和D2分别代入,J(ω)可以表示为:

J ( ω ) = ω T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T ω ∑ x ∈ C l ω T ( x − μ i ) ( x − μ ) T ϱ J(\omega)=\frac{\omega^\mathrm{T}\left(\mu_1-\mu_2\right)(\mu_1-\mu_2)^\mathrm{T}\boldsymbol{\omega}}{\sum_{x\in C_l}\boldsymbol{\omega}^\mathrm{T}\left(x-\mu_i\right)(x-\boldsymbol{\mu})^\mathrm{T}\boldsymbol{\varrho}} J(ω)=xClωT(xμi)(xμ)TϱωT(μ1μ2)(μ1μ2)Tω

为了简化上述公式,这里定义类间距离散度SB和类内距离散度SW分别为:

S B = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T S w = ∑ x ∈ C i ( x − μ i ) ( x − μ i ) T \begin{aligned}S_B&=(\mu_1-\mu_2)(\mu_1-\mu_2)^T\\S_w&=\sum_{x\in C_i}(x-\mu_i)(x-\mu_i)^T\\\end{aligned} SBSw=(μ1μ2)(μ1μ2)T=xCi(xμi)(xμi)T

故可以将式子简化为:

J ( ω ) = ω T S B ω ω T S w ω J(\omega)=\frac{\omega^\mathrm{T}S_B\omega}{\omega^\mathrm{T}S_w\omega} J(ω)=ωTSwωωTSBω

下面使用烂大街而有效的方法最大化J(ω),对ω求偏导,并令其为0,得到:

( ω T S w ω ) S B ω = ( ω T S B ω ) S W ω (\boldsymbol{\omega}^\mathrm{T}\boldsymbol{S}_w\boldsymbol{\omega})\boldsymbol{S}_B\boldsymbol{\omega}=(\boldsymbol{\omega}^\mathrm{T}\boldsymbol{S}_B\boldsymbol{\omega})\boldsymbol{S}_W\boldsymbol{\omega} (ωTSwω)SBω=(ωTSBω)SWω

下面对公式稍作变化,就可以发现一个令人惊讶的结果:

$S_B\omega=\frac{(\omegaTS_w\omega)}{(\omegaTS_B\omega)}S_w\omega $

将Sw乘到左边:

S w − 1 S B ω = ( ω T S w ω ) ( ω T S B ω ) ω S w − 1 S B ω = λ ω \begin{aligned}S_w^{-1}S_B\omega&=\frac{(\omega^TS_w\omega)}{(\omega^TS_B\omega)}\omega\\\\S_w^{-1}S_B\omega&=\lambda\omega\end{aligned} Sw1SBωSw1SBω=(ωTSBω)(ωTSwω)ω=λω

我们居然把目标函数变成了求矩阵的特征值,而投影的方向就是这个特征值对应的特征向量。故对于二分类问题在不考虑投影长度的情况下,我们只要求得样本的均值和类内方差就可以计算出投影方向。

回顾PCA的过程,是不是和LDA很相似呢,但是其原理却不一样,对于无监督学习使用PCA,有监督学习使用LDA。
本的均值和类内方差就可以计算出投影方向。

回顾PCA的过程,是不是和LDA很相似呢,但是其原理却不一样,对于无监督学习使用PCA,有监督学习使用LDA。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值