主成分分析和判别函数

本文介绍了主成分分析(PCA)的概念,包括寻找样本均值和最佳直线的方法,以及散布矩阵和平方判决函数。接着,讨论了Fisher线性判别分析(LDA),用于寻找有效分类方向,最大化类别间距离并最小化类内距离。最后,简述了多重判别分析,用于处理多类别问题。

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

主成分分析和判别函数

标签: 模式分类

@author lancelot-vim


主成分分析

考虑n个d维的样本x1,x2...xn,如何使用一个d维的向量x0,来代表这n个样本,确切说,我们希望这n个样本和它的代表x0之间的距离的和越小越好,特别的,使用欧几里得距离来定义误差函数J0(x0):J0(x0)=nk=1||x0xk||2

我们的目标是寻找x0,使得J0最小,很容易可以得到:x0=1nnk=1xk

实际上,样本均值是样本数据集的零维表达,它表达了样本之间的相似,但不能表达样本的差异性。过样本均值做一条直线,并将所有的样本向这条直线上做投影,那么我们能得到代表所有样本的一维向量,若e⃗ 表示这条直线的单位向量,那么直线方程为x⃗ =m⃗ +ae⃗ ,其中m⃗ 代表样本均值
其中a是一个实数,表示某点离开m的距离,我们用m=ake来表示xk,可得:
J1(a1,a2...an,e)=nk=1||(m+ake)xk||2=nk=1a2k||e||22nk=1akeT(xkm)+nk=1||xkm||2
由于||e||=1,通过对ak求偏导,令结果为0有:ak=eT(xkm),直观上表示为点到直线的距离


这就引出一个问题,什么方向的直线才是最好的直线,对此定义”散布矩阵”(scatter matrix)

S=k=1n(xkm)(xkm)T

将上式代入J1,有:
J1(e)=nk=1a2k2nk=1a2k+nk=1||xkm||2  =nk=1eT(xkm)(xkm)Te+nk=1||xkm||2  =eTSe+nk=1||xkm||2

因此,我们需要找单位向量e,让eTSe最大,根据拉格朗日乘数法可得:Se=λe,最终我们可以得到新的平方判决函数:

Jd=k=1n||(m+i=1dakiei)xk||2

其中:e1,e2...ed为散布矩阵的d’个的最大特征值所对应的特征向量


判别方法

PCA(主成分分析)对于代表或者说表达数据样本特别有效,但是可能对分类并没有什么作用,比如对于字母Q和O,很可能PCA会Q的尾巴丢掉,总的来说PCA方法是用来寻找有效主轴方向的方法,而判别分类方法(discriminant analysis)使用来寻找有效分类方向的方法。


Fisher 线性判别分析

考虑把d维空间的数据投影到一条直线上去,希望不同类别之间的距离尽量远,相同类别尽量紧凑,我们希望找到这样一条直线。假设我们有一组d维的样本x1,x2...xn,它们分别属于两个不同的类别,其中大小为n1的样本子集D1属于类别w1,大小为n2的样本子集D2属于类别w2,如果对x中的各个成分做线性组合,就能的到一个內积,结果为标量 y=wTx,这样,n个样本就能的到n个结果y1,y2...yn,相应属于Y1,Y2

从几何上来说,假设||w||=1,那么每个yi就是把xi向方向为w的直线作投影,w本身的范数仅仅只是乘以了一个倍数,并不重要,但方向很重要。假如w1,w2在d维空间上形成两个显著分开的聚类,那么我们希望数据在直线的投影是分来的。
Fisher线性判别.png-129.3kB


一个很好的用来确定最佳分类方向的方法是度量两个类别样本均值的差,加入mi为d为样本的均值,那么投影后的点为:

m~i=1niyYiy=1nixDiwTx=wTm

因此投影之后的样本差为:|m~im~j|=|wT(m1m2)|
由于可以增加w的幅值,使得距离超级大,但是投影样本均值的差却是相对的,所以我们需要定义类别wi的类内散布:s~2=yYi(ym~i)2,于是1n(s~21+s~22)就是全部数据总体方差的估计,而s~21+s~22称作投影样本的总类内散布
由此Fisher线性可分性准则要求在投影y=wTx下,准测函数J(w)=|m~1m~2|2s~21+s~22尽可能大

要使J()最大化的w能够使投影后的两类最大程度的分开,我们还需要一个阈值准则来确定最终的分类器。
为了把J()写成w的表达式,定义类内散布矩阵Si=xDi(xmi)(xmi)T,和总散布矩阵Sw=S1+S2
可得:

  • s~2i=xDi(wTxwTmi)2=xDiwT(xmi)(xmi)Tw=wTSiw
  • 各散度的和: s~21+s~22=wTSww
  • 各散度的差: (m~1m~2)2=(wTm1wTm2)2    =wT(m1m2)(m1m2)Tw    =wTSBw

我们把Sw称为总类内散度矩阵。它与全部样本的样本写方差矩阵成正比,并且是对称且半正定的。当dn时,Sw通常非奇异。类似的,SB被称为总类间散步矩阵,也是对称半正定的,但由于SB是两个向量的外积,所以秩至多等于1.特别的,对于任意的w,SBw的方向沿着m1m2
若使用SB,Sw来表达,准则函数J()可以写为:

J(w)=wTSBwwTSwW

这个表达式在数学物理中经常被使用,同城被称为广义瑞利商,容易证明,使得准则函数J最大化的w满足SBw=λSww
这是一个广义特征值问题,可以理解成在J的极值处,w发生微小扰动,并不会使得J的分子分母比例发生太大变化。假如Sw是非奇异的,我们就能把该问题化为通常的特征值问题:

S1wSBw=λw

多重判别分析

对于c-类问题,把Fisher线性判别准则作推广,就需要c-1个判别函数,也就是说投影问题实际上是从d维空间向c-1维空间作投影, 并且假设dc,类内散布矩阵推广是明显的:Sw=ck=1Si,其中Si=xDi(xmi)(xmi)T
SB的推广不是那么容易,假设我们定义总体均值为m=1nx=1nni=1nimi,总体散布矩阵ST=(xm)(xm)T,有:

ST=i=1cxDi(xmi+mim)(xmi+mim)T =i=1cxDi(xmi)(xmi)T+i=1cxDi)(mim)(mim)T =Sw+i=1cni(mim)(mim)T

由于,总散布矩阵就是类内散布矩阵和内间散布矩阵的和,即ST=Sw+SB,所以自然而然定义类间散布矩阵为:SB=ci=1ni(mim)(mim)T


从d维空间向c-1维空间的投影是通过c-1个分类方程进行的:yi=wTix  (i=1,2 ... c),如果我们吧yi看作一个c-1维的方程组,可以表达为简单的矩阵方程y=WTx
对原始样本x1,x2 ... xn进行投影后,的到新的样本y1,y2,...yn,这些新得到的样本本身又具有它们自己的均值向量和散步矩阵,由此:

  • m~i=1niyYiy
  • m~=1nci=1nim~i
  • S~w=ci=1yYi(ym~i)(ym~i)T
  • S~B=ci=1ni(m~im~)(m~im~)T

易证:

  • S~w=WTSwW
  • S~B=WTSBW

最终,我们的到了判别函数:J(W)=|S~B||S~w|=|WTSBW||WTSwW|

要使得J()最大化,需使矩阵W的列向量为SBwi=λiSwwi特征值所对应的特征向量


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值