持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
线性判别分析的思想是,找的一个方向ω,将样本向这个方向做投影,投影后的数据尽可能的满足
-
相同类内部的样本的投影尽可能接近
-
不同类之间的距离尽可能较大
总结为类内小,类间大
X=(x1x2⋯ xN)T=⎝⎛x1Tx2T⋮ xNT⎠⎞N×p,Y=⎝⎛y1y2⋮ yN⎠⎞N×1{(xi,yi)}i=1N,xi∈Rp,yi∈{+1,−1}xC1={xi∣yi=+1},xC2={xi∣yi=−1}∣xC1∣=N1,∣xC2∣=N2,N1+N2=N
设
zi=ωTxi
显然这是个实数,可以看做xi在ω上的投影
模型要求类内小,可以用方差矩阵来衡量类内样本的聚散程度
zˉC1:z1ˉS1C2:z2ˉS2=N1i=1∑Nzi=N1i=1∑NωTxi=N11i=1∑N1ωTxi=N11i=1∑N1(ωTxi−z1ˉ)(ωTxi−z1ˉ)T=N11i=1∑N1(ωTxi−N11j=1∑N1ωTxj)(ωTxi−N11j=1∑N1ωTxj)T这里定义N11j=1∑N1xj=xC1=N11i=1∑N1ωT(xi−xC1)(xi−xC1)Tω=ωT(N11i=1∑N1(xi−xC1)(xi−xC1)T)ω这里定义N11i=1∑N1(xi−xC1)(xi−xC1)T=SC1=ωTSC1ω=N21i=1∑N2ωTxi=ωTSC2ω
因此类内可以用方差的和衡量,即
S1+S2=ωT(SC1+SC2)ω
注意这里下标为1,2的是投影z的相关数字特征,下表为C1,C2的是x的相关数字特征
对于不同类之间的距离可以用不同类的均值差的平法来衡量,即
(z1ˉ−z2ˉ)2=(N11i=1∑N1ωTxi−N21i=1∑N2ωTxi)2=ωT(N11i=1∑N1xi−N21i=1∑N2xi)2=[ωT(xC1ˉ−xC2ˉ)]2=ωT(xC1ˉ−xC2ˉ)(xC1ˉ−xC2ˉ)Tω
要取最优的ω^就要求S1+S2小,(z1ˉ−z2ˉ)2大,因此定义
J(ω)=ωT(SC1+SC2)ωωT(xC1ˉ−xC2ˉ)(xC1ˉ−xC2ˉ)Tω
因此对于ω^,有
ω^∂ω∂J(ω)00(ωTSbω)Sωωωω=ωargmax J(ω)=ωargmax ωT(SC1+SC2)ωωT(xC1ˉ−xC2ˉ)(xC1ˉ−xC2ˉ)Tω定义Sb=(xC1ˉ−xC2ˉ)(xC1ˉ−xC2ˉ)T(between−class类间方差)定义Sω=SC1+SC2(with−class类内方差)=ωTSωωωTSbω=ωTSbω(ωTSωω)−1=2Sbω(ωTSωω)−1+ωTSbω⋅(−1)(ωTSwω)−2⋅2Sωω=2Sbω(ωTSωω)−1+ωTSbω⋅(−1)(ωTSwω)−2⋅2Sωω=Sbω(ωTSωω)−ωTSbωSωω=Sbω(ωTSωω)这里显然ωTSbω,ωTSωω∈R=ωTSbωωTSωωSω−1Sbω这里如果只关系ω的方向,则可以忽略所有实数∝Sω−1Sbω∝Sω−1(xC1ˉ−xC2ˉ)(xC1ˉ−xC2ˉ)Tω这里显然(xC1ˉ−xC2ˉ)Tω也是实数∝Sω−1(xC1ˉ−xC2ˉ)
其实我们只是要ωargmax J(ω),但实际上,我们只要ω的方向,并不关系ω的值,因此此处∝Sω−1(xC1ˉ−xC2ˉ)记为所求的ω方向