线性判别分析LDA

线性判别分析是一种降维方法

也是一种特征提取方法

这里写图片描述

线性判别分析是一个线性变换,也就是将原始数据乘以一个变换矩阵W

Y=WTX

其中X就是原始数据,Y是变换后的数据,也就是降维后的矩阵

由上面的示意图就可以看出,实际上LDA就是致力于把数据投影到一个低维空间里面去,在这个低维空间里面,数据具有最大的可分性

公式的推导

设高维特征集 X=x1,x2,...,xn,其中有n1个样本属于第一类ω1n2个样本属于ω2,以此类推,设一共有C类,有nC个样本属于ωC,则存在一个变换矩阵W使得

Y=WTX

假设m1,m2,...,mC分别为变换前的每一类样本的均值向量

m是变换前所有样本的均值向量

假设μ1,μ2,...,μC分别为变换后的每一类样本的均值向量

则有:

μ1=WTm1,μ2=WTm2,...,μC=WTmC

总体均值也存在这样的关系:

μ=WTm

设类间散度描述如下:

J1=c=1Cncμcμ2     =c=1CncWTmcWTm2     =Tr(WTSBW)

其中SB=c=1Cnc(mcm)(mcm)T,这是变换前的数据的类间离散度矩阵

设类内离散度矩阵如下:

J2=J21+J22+...+J2C    =xω1WTxWTm12+...+xωCWTxWTmC2    =Tr(WTSWW)

其中SW=c=1Cxωc(xmc)(xmc)T,这个矩阵表示类内离散度矩阵

那么LDA实际上致力于使得变换后的数据具有最大可分性,因此它的模型如下:

maxWJ1J2=maxWTr(WTSBW)Tr(WTSWW)

可以转换为求解下面的特征方程:

SBW=λSWW

SW移到左边就可以发现,其实是求S1WSB的特征值和特征向量

将求出来的特征向量按序逐列排列,就得到W了,WC1

为什么LDA降维只能降到C-1维?

为什么求出来的WC1列的?

因为S1WSB只有C1个特征值。

观察SB的表达式可以发现,它由C个矩阵相加而成

因此它的秩小于等于这C个矩阵的秩之和

观察这C个矩阵可以发现,他们都是由一个列向量乘以这个列向量的转置而得到的

这样的矩阵的秩小等于1

因此SB的秩小等于C

而实际上,μkμ可以由其他C1μi线性表示
因此因此SB的秩为C1

同理可得SW的秩为C

因此S1W的秩也为C

因此S1WSB的秩为C1(因为两矩阵相乘的秩小于秩较小的那个矩阵的秩)

而秩就代表了非零特征值的个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值