LDA线性判别分析

本文深入探讨了LDA(线性判别分析)作为有监督降维方法的基本原理及应用。介绍了通过最大化类别间距离同时最小化类别内距离来实现降维的目标,并详细解析了其数学推导过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法思想

LDA是经典的有监督的降维方法。而我们的降维方法,一般都是将样本数据进行投射。LDA的思想就是将样本投射到一条直线上,使同类的样本点尽可能的接近,而异类的样本点尽可能的远离。如下图所示:

这里写图片描述

算法推导

假设我们的样本数据是D={(x1,y1),...,(xm,ym)}D={(x1,y1),...,(xm,ym)} 其中yi{0,1}yi∈{0,1}

我们假设xi,μi,Σixi,μi,Σi分别为第ii类样本的集合,均值以及协方差矩阵。

我们将数据映射到w上,则两类样本的中心点在直线上的投影分别为wTμ0,wTμ1wTμ0,wTμ1

将所有的数据投射到w上,则两类样本的协方差分别为wTΣ0w,wTΣ1wwTΣ0w,wTΣ1w

根据LDA的思想:

同类的样本点尽可能的接近,而异类的样本点尽可能的远离

有:

式子wTΣ0w+wTΣ1wwTΣ0w+wTΣ1w要尽可能的小

式子||wTμ0wTμ1||22||wTμ0−wTμ1||22要尽可能的大

因此我们的目标转化为最大化:

J=||wTμ0wTμ1||22wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)wJ=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w

我们可以定义类内散度矩阵:

Sw=Σ0+Σ1=xx0(xμ0)(xμ0)T+xx1(xμ1)(xμ1)TSw=Σ0+Σ1=∑x∈x0(x−μ0)(x−μ0)T+∑x∈x1(x−μ1)(x−μ1)T

类间散度矩阵:

Sb=(μ0μ1)(μ0μ1)TSb=(μ0−μ1)(μ0−μ1)T

所以优化目标变为:

J=||wTμ0wTμ1||22wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w=wTSbwwTSwwJ=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w=wTSbwwTSww

下面我们的目标就是如何确定w。

上面的式子与w的大小无关,因此问题可以转换为:

minw wTSbwminw −wTSbw

s.t.wTSww=1s.t.wTSww=1

利用拉个朗日乘子法,有:

Sbw=λSwwSbw=λSww

由于Sb=(μ0μ1)(μ0μ1)TSb=(μ0−μ1)(μ0−μ1)T,因此可以令:

Sb=λ(μ0μ1)Sb=λ(μ0−μ1)

带如式子有:

w=S1w(μ0μ1)w=Sw−1(μ0−μ1)

SwSw做奇异值分解:

Sw=UΣVTSw=UΣVT

所以有:

S1w=VΣ1UTSw−1=VΣ−1UT

因此可以得到投影向量:

w=VΣ1UT(μ0μ1)w=VΣ−1UT(μ0−μ1)

多维场景

对于降维问题,如果降到多维的场景,可以如下处理:

SbW=λSwWSbW=λSwW

有:

Sw1SbW=λWSw−1SbW=λW

因此只需要对Sw1SbSw−1Sb做特征值分解,得到的最大的特征值对应的特征向量组成的矩阵就是多维的投影向量。

多分类场景

如果是多分类(假设为NN)问题,则只需要修改下式即可:

Sb=i=1Nmi(μ0μi)(μ0μi)T

其中mimi为第ii例样本的个数。

最后说一句

特征值分解或者奇异值分解无处不在啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值