线性判别分析(LDA)
2021-10-24

 

 

 

基本原理

降维原理:组间方差大、组内方差小。

例1

降维步骤

以二类数据为例对降维过程进行说明。首先,定义如下变量:

  1. 数据集:x(i)=[x1(i),x2(i),,xd(i)]T,共N个样本
  2. 类别:c={c1,c2},其中,c1样本个数为N1c2样本个数为N2N=N1+N2

 

原始数据为d维,在"组间方差大、组内方差小"的原则下,先降1维;

  1. 投影

    使用向量w=[w1,w2,,wd]T对数据进行投影,并得到投影后的结果:

    (1)y=wTx
  2. 计算原始数据类内均值

    (2)μμi=1Nixcixi={1,2}μμid×1
  3. 计算投影后的样本点均值

    (3)μ~i=1Niyciy=1NiyciwTx=wTμμi

    由此可知,投影后的均值是样本中心点的投影。

  4. 定义投影后数据的方差:度量组内差异

    (4)s~i2=yci(yμ~i)2=xci(wTxwTμμi)2=xciwT(xμμi)(xμμi)Tw

    s~i2的几何意义是反映了样本点的密集程度,值越大,投影后数据越分散,反之,越集中。

    为方便后续计算,定义中间部分为:

    (5)Si=xci(xμμi)(xμμi)TSid×d

    这也被称为散列矩阵(scatter matrices)。

    定义SWWithin-class scatter matrix)为:

    (6)SW=S1+S2SWd×d

     

  5. 定义投影后组间均值差异:度量组间差异

    (7)A=(μ~1μ~2)2=(wTμμ1wTμμ2)(wTμμ1wTμμ2)T=wT(μμ1μμ2)(μμ1μμ2)Tw

    定义SB称为(Between-class scatter matrix):

    (8)SB=(μμ1μμ2)(μμ1μμ2)TSBd×d
  6. 定义最终度量公式

    (9)J(w)=(μ~1μ~2)2s~12+s~22=wTSBwwTSWw
  7. 定义优化目标

    (10)maxJ(w)s.t.wTSWw=1

    增加约束wTSWw=1的原因:因为不做归一化的话,w扩大任何倍,公式都成立,因此无法确定w

  8. 定义拉格朗日函数

    (11)L(w,λ)=wTSBwλ(wTSWw1)

    求导得:

    (12)Lw=SBw+SBTwλSWwλSWTw=2SBw2λSWw(SBSW)=0

    解得:

    (13)SBw=λSWwSW1SBw=λw

    可见,w是矩阵SW1SB的特征向量,当前可以取最大特征值对应的特征向量。

     

     

    因为:

    (14)SBw=(μμ1μμ2)(μμ1μμ2)Tw

    (μμ1μμ2)Tw为一个数值,假设(μμ1μμ2)Tw=α,那么总可以对w进行缩放,使得α=λ,即:

    (15)SBw=(μμ1μμ2)(μμ1μμ2)Tw=(μμ1μμ2)λ

    那么:

    (16)SW1SBw=SW1(μμ1μμ2)λ=λw

    所以:

    (17)w=SW1(μμ1μμ2)

    至此,只需要求出原始样本的均值和方差就可以求出最佳的方向w

 

 

参考链接

  1. 线性判别分析LDA原理总结 - 刘建平Pinard - 博客园 (cnblogs.com)
  2. 为什么线性判别分析的降维维数不能大于类别数减一? - 知乎 (zhihu.com)
  3. Dimensionality Reduction——LDA线性判别分析原理篇 - 知乎 (zhihu.com)
  4. Linear Discriminant Analysis (sebastianraschka.com)