• (三)线性判别式分析LDA


    目录

    一、LDA

    二、LDA的推导

    1.求样本方差

    2.优化LDA

    三、PCA和LDA的区别


    一、LDA

    线性判别式分析,又称Fisher线性判别(Linear discriminant analysis)。

    如下图所示:

    左图是前面我们学到的PCA(主成分分析),PCA是一种数据压缩算法(降维),它压缩的目的是,使之在后续数据恢复中的损失最小,优化准则是最小重构误差,是无监督学习算法;右图是LDA,LDA是一个监督学习算法,它是有类别的,其次,LDA算法也是一个数据压缩算法,它压缩的目的是可以很好的将样本区分开,优化准则是让每个类之间距离更大,类内更加紧凑(即最大化类间均值,最小化类内方差)。

    二、LDA的推导

    我们来看一下LDA是怎么推导的:

    1.求样本方差

    K类样本如下图所示:

    我们假设\tilde{x}^j_i为变换后的样本,即映射到主向量上的样本。

    \tilde{x}^j_i在主向量上的表示为:

     它们之间的关系如图所示:

     

     因为我们想要最小化类内方差,所以计算第K类的方差:

    为样本方差公式,其中\tilde{x}为变换之后的样本,\tilde{m}为变换之后的均值。

    那这个公式是怎么得来的呢?

    其中间转换公式为:(\tilde{x}-\tilde m)^2=(\tilde{x}-\tilde m)^T(\tilde{x}-\tilde m)

    然后将\tilde{x}^j_i代入\tilde{x}

    注意,x和u是列向量,u^Tx=x^Tu是一个实数,实数的转置还是实数;我们假设u是一个单位向量,则u^Tu=1,若u的长度定义为a,则在下属公式右边再乘a。。

    全部过程如下所示:

    要求第K类样本的方差还要除以第K类样本的个数:

    其中\frac{\sum x^T}{N_k}=m^T(均值)

     

    2.优化LDA

    (1)最小化类内方差

    对K类样本的方差求和:

     

     最终求得,我们的目的就是使这一项尽可能的小,

    (2)最大化类间均值

    不同样本之间距离可以表示为:

     对S_{ij}求和得到:

     

     最终求得,我们的目的是使这一项尽可能的大。

    总结

    我们的最终目的就是,最小化S_w,最大化S_b

    我们构建下述公式,求 J 的最大值。

    其中求最大值我们应用的拉格朗日乘子。

     

    我们使得S_bS_w^{-1}u=T,则该方程变为Tu = λu,该问题就转变为特征值和特征向量的问题,从而得到 u 和 λ 。

    附手推图:

     

     

    三、PCA和LDA的区别

    PCA(主成分分析)是一种数据压缩算法(降维),它压缩的目的是,使之在后续数据恢复中的损失最小,优化准则是最小重构误差,是无监督学习算法;LDA是一个监督学习算法,它是有类别的,其次,LDA算法也是一个数据压缩算法,它压缩的目的是可以很好的将样本区分开,优化准则是让每个类之间距离更大,类内更加紧凑(即最大化类间均值,最小化类内方差)。

    主方向个数:

    有N类样本,每个样本的维数为n

    PCA最多可以找到n个主方向。

    LDA最多可以找到N-1个主方向。

  • 相关阅读:
    《ASP.NET Core技术内幕与项目实战》精简集-目录
    C++——多态
    Docker Desktop使用入门
    浅析安全框架-Shiro和Spring Security
    CFDer工资待遇好吗?我爬取了某招聘网站之后
    【Android development】系列_03布局管理器
    FUNCTION 表示 getter setter
    【C++】数组
    Debezium系列之:深入理解Kafka的消息代理
    ECCV 2022 | MVDG:一种用于域泛化的统一多视图框架
  • 原文地址:https://blog.csdn.net/m0_45447650/article/details/126323104