精华内容
下载资源
问答
  • LDA算法原理及matlab实现

    万次阅读 多人点赞 2016-11-09 19:37:05
    注:本文非笔者原创,原文转载自:... 1.LDA是什么 线性判别式分析(Linear Discriminant Analysis),简称为LDA。也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Be

    注:本文非笔者原创,原文转载自:http://blog.csdn.net/porly/article/details/8020696

    1. LDA是什么

    线性判别式分析(Linear Discriminant Analysis),简称为LDA。也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域。

    基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离最小的类内距离,即模式在该空间中有最佳的可分离性。

    LDA与前面介绍过的PCA都是常用的降维技术。PCA主要是从特征的协方差角度,去找到比较好的投影方式LDA更多的是考虑了标注即希望投影后不同类别之间数据点的距离更大,同一类别的数据点更紧凑

    下面给出一个例子,说明LDA的目标。

     

           可以看到两个类别,一个绿色类别,一个红色类别。左图是两个类别的原始数据,现在要求将数据从二维降维到一维。直接投影到x1轴或者x2轴,不同类别之间会有重复,导致分类效果下降。右图映射到的直线就是用LDA方法计算得到的,可以看到,红色类别和绿色类别在映射之后之间的距离是最大的,而且每个类别内部点的离散程度是最小的(或者说聚集程度是最大的)。

    这里还有一个LDA的例子:

    下图是一个LDA和PCA区别的例子:

           两个类别,class1的点都是圆圈,class2的点都是十字。图中有两条直线,斜率在1左右的这条直线是PCA选择的映射直线,斜率在 -1左右的这条直线是LDA选择的映射直线。其余不在这两条直线上的点是原始数据点。可以看到由于LDA考虑了“类别”这个信息(即标注),映射后,可以很好的将class1和class2的点区分开。也就是说,LDA是以分类为导向的,考虑的是如何选择投影方向使得分类更好,是有监督的;而PCA是一种无监督的降维方式,它只是单纯的降维,它考虑的是如何选择投影面才能使得降维以后的样本信息保留的最大(而这是通过方差大来体现的)。

    2. LDA的一些说明

       第一,降维后的维度是多少?

         PCA降维是直接和数据维度相关的,比如原始数据是n维的,那么PCA后,可以任意选取1维、2维,一直到n维都行(当然是对应特征值大的那些)。LDA 降维是直接和类别的个数相关的,与数据本身的维度没关系,比如原始数据是n维的,一共有C个类别,那么LDA降维之后,一般就是1维,2维到C-1维进行选择(当然对应的特征值也是最大的一些),举个例子,假设图象分类,两个类别正例反例,每个图象10000维特征,那么LDA之后,就只有1维特征,并且这维特征的分类能力最好。
    PS:对于很多两类分类的情况,LDA之后就剩下1维,找到分类效果最好的一个阈值貌似就可以了。

       第二,投影的坐标系是否正交

        PCA投影的坐标系都是正交的,而LDA根据类别的标注,关注分类能力,因此不保证投影到的坐标系是正交的(一般都不正交)。

    3. LDA计算过程(两个类别)

    这一节,主要讨论只有两个类别的数据,LDA的计算。现在要找到一个向量w,将数据x投影到w上去之后,得到新的数据y。第一,为了实现投影后的两个类别的距离较远,用映射后两个类别的均值差的绝对值来度量。第二,为了实现投影后,每个类内部数据点比较聚集,用投影后每个类别的方差来度量。

    类别i的均值:


       


        类别i投影后的均值(实际上等于mi的投影):


        


        投影后均值差的绝对值:


        


        投影后的方差(这里的y是类别i中数据投影后的数据,即y=w_t * x):


        


        目标优化函数为:


        


        下面通过展开m'和s',定义S_B和S_W:

      

        

    优化目标J(w)改写如下,这样是为了方便推导出计算w的方法。


        


        推导过程忽略了,最后推导结果如下:


        

    假设数据是n维特征,m个数据,分类个数为2。那么Sw实际上是每个类别的协方差矩阵之和,每个类别的协方差矩阵都是n*n的,因此Sw是n*n的,m1-m2是n*1的。计算得到的w是n*1的,即w将维特征映射为1维。

    PS:这里不用纠结与Sw的协方差矩阵形式,实际上这是拆拆开来w和w_t后的结果,实际上w*Sw*w_t后,仍旧是一个数值,即表示两个类的投影后方差之和。

    4. LDA计算过程(多个类别)

         对于S_w,就是“两个类别的协方差矩阵之和”变成了“多个类别的协方差矩阵之和”。


        

     

          对于S_b,以前是“两个类别的均值之差的绝对值”,现在多个类别了,怎么计算呢?计算任意两个类别之间的均值之差的绝对值之和?这样对于N个类别,需要 C(N,2)次计算,这可能是一个方法,不过LDA使用的方法,计算每个类别的均值与所有类别均值的差异,并且对每个类别的数据量进行加权处理。下式中,m为所有类别的均值,m_i为类别i的均值,n_i为类别i的数据量。


        

            对于n维特征、C个类别、m个样本的数据,是将n维数据映射为C-1维。即所求的w是一个n*(c-1)的矩阵。S_w是一个n*n的矩阵(没有除以样本数的协方差矩阵之和),S_B是一个C*C的矩阵,实际上S_B矩阵的的秩最多是C-1,这是因为n_i*(m_i-m)这c向量实际上是线性相关的,因为他们的和是均值m的常数倍。这导致后面求解w,实际上是求出C-1个向量一个构成的一个w。

    具体计算忽略。

    下面就是一个三个类别的例子: 

    4. LDA其他变种

    如果原始数据投影后,仍旧不能很好的分开,那么Kernel LDA是一个解决方法。

    LDA在计算量上与数据的维度有关,2DLDA能够大大减小LDA计算量。

    5. LDA的一些问题

    第一,LDA最多投影出C-1维特征,如果需要更多特征,则要引入其他方法。

    第二,LDA假设数据服从单峰高斯分布,比如下面的复杂数据结构。

    5. 参考

    Introduction to LDA
    Linear Discriminant Analysis - A Brief Tutorial
      http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_fisher_discriminant.htm

    线性判别分析(Linear Discriminant Analysis, LDA)算法分析

    转载自:http://blog.csdn.net/jnulzl/article/details/49894041http://blog.csdn.net/jnulzl/article/details/49894041

    一、前言

    最近由于研究需要,要用到线性判别分析(LDA)。于是找了很多资料来看,结果发现大部分讲的都是理论知识,因此最后还是看的一知半解,后来终于找到了个英文的文档,作者由PCA引入LDA,看过后豁然开朗,主要是文档中有详细的例子,为了保持原版在此就直接粘贴过来了——后面的例子是结合MATLAB实现的!

    二、LDA理论详解

    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述

    三、LDA实例详解

    下面是作者文档中配的一个具体例子,其中的代码是MATLAB代码。

    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    四、相关的中文LDA资料

    除了上面英文版的LDA外,我感觉以下关于LDA的中文文章讲的也是挺不错的:

    1、线性判别分析(Linear Discriminant Analysis)(一)

    2、线性判别分析(Linear Discriminant Analysis, LDA)算法分析

    3、LDA 线性判别分析

    4、机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

    LDA详细推导:

    展开全文
  • 里面文档对LDA算法有详细的推导过程,并带有仿真代码;同时还有一份关于LDA所运用的数学知识笔记。希望对你们学习和理解LDA算法有帮助!!!
  • LDA算法原理及LDA与PCA的比较

    千次阅读 2019-04-18 15:41:27
    1. LDA算法简介 LDA(线性判别式分析 Linear Discriminant Analysis)属于机器学习中的监督学习算法,常用来做特征提取、数据降维和任务分类。在人脸识别、人脸检测等领域发挥重要作用。LDA算法与PCA算法都是常用的...

    1. LDA算法简介

    LDA(线性判别式分析 Linear Discriminant Analysis)属于机器学习中的监督学习算法,常用来做特征提取、数据降维和任务分类。在人脸识别、人脸检测等领域发挥重要作用。LDA算法与PCA算法都是常用的降维技术。二者的区别在于:LDA是一种监督学习的降维技术,也就是说它的每个样本是有类别输出的,而之前所学习的PCA算法是不考虑样本类别输出的无监督降维技术。

    LDA算法的目标是使降维后的数据类内方差最小,类间方差最大(即使数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据中心之间的距离尽可能的大。)

    上图中左图为PCA算法的投影方式,它所做的知识将整组数据整体映射到最方便表示这组数据的坐标轴上,映射时没有利用任何数据内部的分类信息。因此,虽然PCA可以使整组数据在表示上更加方便,但在分类上也许会变得更加困难。PCA没有分类标签,降维之后需要采用K-means等无监督的算法进行分类。

    右图为LDA算法的投影方式,可以看出在增加了分类信息之后,两组输入映射到了另一个坐标轴上,这样两组数据之间就变得更易区分了,可以减少很大的运算量。

    LDA的优化目标为最大类间方差和最小类内方差。LDA方法需分别计算“within-class”的分散程度Sw和“between-class”的分散程度Sb,而且希望Sb/Sw 越大越好,从而找到合适的映射向量w。其降维流程如下:

    2. LDA降维流程

    3. LDA算法与PCA的比较:

       两者相同点:

    1. 两者均可以对数据进行降维
    2. 两者在降维时均使用了矩阵特征分解的思想。
    3. 两者都假设数据符合高斯分布

       不同点:

    1. LDA是有监督的降维方法,而PCA是无监督的降维方法
    2. LDA降维最多降到类别数K-1的维数,而PCA没有这个限制
    3. LDA除了可以用于降维,还可以用于分类
    4. LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

    有些时候LDA比PCA降维更优,有些时候PCA比LDA降维更优。

    4. LDA算法优缺点:

    优点:

    1. LDA在样本分类信息依赖均值而不是方差的时候,比PCA分类的算法更优
    2. 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。

    缺点:

    1. LDA与PCA都不适合对非高斯分布的样本进行降维
    2. LDA降维最多降到类别数K-1的维数
    3. LDA在样本分类信息依赖方差而不是均值的时候降维效果不好。
    4. LDA可能过度拟合数据。
    展开全文
  • 线性判别分析(Linear Discriminant Analysis,LDA)是机器学习中常用的降维方法之一,本文旨在介绍LDA算法的思想,其数学推导过程可能会稍作简化。 LDA的思想 ● LDA是一种线性的、有监督的降维方法,即每个样本都...

    问题

    线性判别分析(Linear Discriminant Analysis,LDA)是机器学习中常用的降维方法之一,本文旨在介绍LDA算法的思想,其数学推导过程可能会稍作简化。

    LDA的思想

    ● LDA是一种线性的、有监督的降维方法,即每个样本都有对应的类别标签(这点和PCA)。

    ● 主要思想:给定训练样本集,设法将样本投影到一条直线上,使得同类的样本的投影尽可能的接近、异类样本的投影尽可能地远离(即最小化类内距离和最大化类间距离)。

    下面分别通过《机器学习》和《百面机器学习》两本书中的图片先来直观地理解一下LDA的思想。

    ● 为什么要将最大化类间距离和最小化类内距离同时作为优化目标呢?

    先看上面第二张图的左图(a),对于两个类别,只采用了最大化类间距离,其结果中两类样本会有少许重叠;而对于右图(b),同时最大化类间距离和最小化类内距离,可见分类效果更好,同类样本的投影分布更加集中了。当然,对于二维的数据,可以采用将样本投影到直线上的方式,对于高维的数据,则是投影到一个

    展开全文
  • LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。  在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自...

      在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。

        在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),他是一种处理文档的主题模型。我们本文只讨论线性判别分析,因此后面所有的LDA均指线性判别分析。

    1. LDA的思想

        LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

        可能还是有点抽象,我们先看看最简单的情况。假设我们有两类数据 分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。

        上图中国提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。

        在我们将上面直观的内容转化为可以度量的问题之前,我们先了解些必要的数学基础知识,这些在后面讲解具体LDA原理时会用到。

    2. 瑞利商(Rayleigh quotient)与广义瑞利商(genralized Rayleigh quotient) 

        我们首先来看看瑞利商的定义。瑞利商是指这样的函数R(A,x)R(A,x):

    R(A,x)=xHAxxHxR(A,x)=xHAxxHx

     

        其中xx为非零向量,而AA为n×nn×n的Hermitan矩阵。所谓的Hermitan矩阵就是满足共轭转置矩阵和自己相等的矩阵,即AH=AAH=A。如果我们的矩阵A是实矩阵,则满足AT=AAT=A的矩阵即为Hermitan矩阵。

        瑞利商R(A,x)R(A,x)有一个非常重要的性质,即它的最大值等于矩阵AA最大的特征值,而最小值等于矩阵AA的最小的特征值,也就是满足

    λmin≤xHAxxHx≤λmaxλmin≤xHAxxHx≤λmax

     

        具体的证明这里就不给出了。当向量xx是标准正交基时,即满足xHx=1xHx=1时,瑞利商退化为:R(A,x)=xHAxR(A,x)=xHAx,这个形式在谱聚类和PCA中都有出现。

        以上就是瑞利商的内容,现在我们再看看广义瑞利商。广义瑞利商是指这样的函数R(A,B,x)R(A,B,x):

    R(A,x)=xHAxxHBxR(A,x)=xHAxxHBx

     

        其中xx为非零向量,而A,BA,B为n×nn×n的Hermitan矩阵。BB为正定矩阵。它的最大值和最小值是什么呢?其实我们只要通过将其通过标准化就可以转化为瑞利商的格式。我们令x′=B−1/2xx′=B−1/2x,则分母转化为:

    xHBx=x′H(B−1/2)HBB−1/2x′=x′HB−1/2BB−1/2x′=x′Hx′xHBx=x′H(B−1/2)HBB−1/2x′=x′HB−1/2BB−1/2x′=x′Hx′

     

        而分子转化为:

    xHAx=x′HB−1/2AB−1/2x′xHAx=x′HB−1/2AB−1/2x′

     

        此时我们的R(A,B,x)R(A,B,x)转化为R(A,B,x′)R(A,B,x′):

    R(A,B,x′)=x′HB−1/2AB−1/2x′x′Hx′R(A,B,x′)=x′HB−1/2AB−1/2x′x′Hx′

     

        利用前面的瑞利商的性质,我们可以很快的知道,R(A,B,x)R(A,B,x)的最大值为矩阵B−1/2AB−1/2B−1/2AB−1/2的最大特征值,或者说矩阵B−1AB−1A的最大特征值,而最小值为矩阵B−1AB−1A的最小特征值。如果你看过我写的谱聚类(spectral clustering)原理总结第6.2节的话,就会发现这里使用了一样的技巧,即对矩阵进行标准化。

    3. 二类LDA原理

        现在我们回到LDA的原理上,我们在第一节说讲到了LDA希望投影后希望同一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,但是这只是一个感官的度量。现在我们首先从比较简单的二类LDA入手,严谨的分析LDA的原理。

        假设我们的数据集D={(x1,y1),(x2,y2),...,((xm,ym))}D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本xixi为n维向量,yi∈{0,1}yi∈{0,1}。我们定义Nj(j=0,1)Nj(j=0,1)为第j类样本的个数,Xj(j=0,1)Xj(j=0,1)为第j类样本的集合,而μj(j=0,1)μj(j=0,1)为第j类样本的均值向量,定义Σj(j=0,1)Σj(j=0,1)为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。

        μjμj的表达式为:

    μj=1Nj∑x∈Xjx(j=0,1)μj=1Nj∑x∈Xjx(j=0,1)

     

        ΣjΣj的表达式为:

    Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)

     

        由于是两类数据,因此我们只需要将数据投影到一条直线上即可。假设我们的投影直线是向量ww,则对任意一个样本本xixi,它在直线ww的投影为wTxiwTxi,对于我们的两个类别的中心点μ0,μ1μ0,μ1,在在直线ww的投影为wTμ0wTμ0和wTμ1wTμ1。由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化||wTμ0−wTμ1||22||wTμ0−wTμ1||22,同时我们希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的协方差wTΣ0wwTΣ0w和wTΣ1wwTΣ1w尽可能的小,即最小化wTΣ0w+wTΣ1wwTΣ0w+wTΣ1w。综上所述,我们的优化目标为:

    argmaxwJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)wargmax⏟wJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w

     

        我们一般定义类内散度矩阵SwSw为:

    Sw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)TSw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)T

     

        同时定义类间散度矩阵SbSb为:

    Sb=(μ0−μ1)(μ0−μ1)TSb=(μ0−μ1)(μ0−μ1)T

     

        这样我们的优化目标重写为:

    argmaxwJ(w)=wTSbwwTSwwargmax⏟wJ(w)=wTSbwwTSww

     

        仔细一看上式,这不就是我们的广义瑞利商嘛!这就简单了,利用我们第二节讲到的广义瑞利商的性质,我们知道我们的J(w)J(w)最大值为矩阵S−1wSbSw−1Sb的最大特征值,而对应的ww为S−1wSbSw−1Sb的最大特征值对应的特征向量!

        注意到对于二类的时候,SbwSbw的方向恒为μ0−μ1μ0−μ1,不妨令Sbw=λ(μ0−μ1)Sbw=λ(μ0−μ1),将其带入:(S−1wSb)w=λw(Sw−1Sb)w=λw,可以得到w=S−1w(μ0−μ1)w=Sw−1(μ0−μ1), 也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向ww了。

    4. 多类LDA原理

        有了二类LDA的基础,我们再来看看多类别LDA的原理。

        假设我们的数据集D={(x1,y1),(x2,y2),...,((xm,ym))}D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本xixi为n维向量,yi∈{C1,C2,...,Ck}yi∈{C1,C2,...,Ck}。我们定义Nj(j=1,2...k)Nj(j=1,2...k)为第j类样本的个数,Xj(j=1,2...k)Xj(j=1,2...k)为第j类样本的集合,而μj(j=1,2...k)μj(j=1,2...k)为第j类样本的均值向量,定义Σj(j=1,2...k)Σj(j=1,2...k)为第j类样本的协方差矩阵。在二类LDA里面定义的公式可以很容易的类推到多类LDA。

        由于我们是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。假设我们投影到的低维空间的维度为d,对应的基向量为(w1,w2,...wd)(w1,w2,...wd),基向量组成的矩阵为WW, 它是一个n×dn×d的矩阵。

        此时我们的优化目标应该可以变成为:

    WTSbWWTSwWWTSbWWTSwW

     

        其中Sb=∑j=1kNj(μj−μ)(μj−μ)TSb=∑j=1kNj(μj−μ)(μj−μ)T,μμ为所有样本均值向量。Sw=∑j=1kSwj=∑j=1k∑x∈Xj(x−μj)(x−μj)TSw=∑j=1kSwj=∑j=1k∑x∈Xj(x−μj)(x−μj)T

        但是有一个问题,就是WTSbWWTSbW和WTSwWWTSwW都是矩阵,不是标量,无法作为一个标量函数来优化!也就是说,我们无法直接用二类LDA的优化方法,怎么办呢?一般来说,我们可以用其他的一些替代优化目标来实现。

        常见的一个LDA多类优化目标函数定义为:

    argmaxWJ(W)=∏diagWTSbW∏diagWTSwWargmax⏟WJ(W)=∏diagWTSbW∏diagWTSwW

     

        其中∏diagA∏diagA为AA的主对角线元素的乘积,WW为n×dn×d的矩阵。

         J(W)J(W)的优化过程可以转化为:

    J(W)=∏i=1dwTiSbwi∏i=1dwTiSwwi=∏i=1dwTiSbwiwTiSwwiJ(W)=∏i=1dwiTSbwi∏i=1dwiTSwwi=∏i=1dwiTSbwiwiTSwwi

     

        仔细观察上式最右边,这不就是广义瑞利商嘛!最大值是矩阵S−1wSbSw−1Sb的最大特征值,最大的d个值的乘积就是矩阵S−1wSbSw−1Sb的最大的d个特征值的乘积,此时对应的矩阵WW为这最大的d个特征值对应的特征向量张成的矩阵。

        由于WW是一个利用了样本的类别得到的投影矩阵,因此它的降维到的维度d最大值为k-1。为什么最大维度不是类别数k呢?因为SbSb中每个μj−μμj−μ的秩为1,因此协方差矩阵相加后最大的秩为k(矩阵的秩小于等于各个相加矩阵的秩的和),但是由于如果我们知道前k-1个μjμj后,最后一个μkμk可以由前k-1个μjμj线性表示,因此SbSb的秩最大为k-1,即特征向量最多有k-1个。

    5. LDA算法流程

        在第三节和第四节我们讲述了LDA的原理,现在我们对LDA降维的流程做一个总结。

        输入:数据集D={(x1,y1),(x2,y2),...,((xm,ym))}D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本xixi为n维向量,yi∈{C1,C2,...,Ck}yi∈{C1,C2,...,Ck},降维到的维度d。

        输出:降维后的样本集$D′$

        1) 计算类内散度矩阵SwSw

        2) 计算类间散度矩阵SbSb

        3) 计算矩阵S−1wSbSw−1Sb

        4)计算S−1wSbSw−1Sb的最大的d个特征值和对应的d个特征向量(w1,w2,...wd)(w1,w2,...wd),得到投影矩阵[Math Processing Error]W

        5) 对样本集中的每一个样本特征xixi,转化为新的样本zi=WTxizi=WTxi

        6) 得到输出样本集D′={(z1,y1),(z2,y2),...,((zm,ym))}D′={(z1,y1),(z2,y2),...,((zm,ym))}

     

        以上就是使用LDA进行降维的算法流程。实际上LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。

        由于LDA应用于分类现在似乎也不是那么流行,至少我们公司里没有用过,这里我就不多讲了。

    6. LDA vs PCA

        LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。

        首先我们看看相同点:

        1)两者均可以对数据进行降维。

        2)两者在降维时均使用了矩阵特征分解的思想。

        3)两者都假设数据符合高斯分布。

        我们接着看看不同点:

        1)LDA是有监督的降维方法,而PCA是无监督的降维方法

        2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。

        3)LDA除了可以用于降维,还可以用于分类。

        4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

        这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。

        当然,某些某些数据分布下PCA比LDA降维较优,如下图所示:

    7. LDA算法小结

        LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在我们进行图像识别图像识别相关的数据分析时,LDA是一个有力的工具。下面总结下LDA算法的优缺点。

        LDA算法的主要优点有:

        1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。

        2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

        LDA算法的主要缺点有:

        1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。

        2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。

        3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。

        4)LDA可能过度拟合数据。

     

    转自:http://www.cnblogs.com/pinard/p/6244265.html

    展开全文
  • ,现重点介绍LDA算法,其他算法后续再讲. 我不喜欢讲大多学术上比较难懂的词,下面我将 通俗得去讲解LDA算法 原理。 通常我们可以定义主题是一种关键词集合,如果一篇文章出现这些关键词,我们可以直接判断这篇文章...
  • 关于LDA算法的实例程序代码,以及对于LDA算法原理讲解,希望对大家有所帮助
  • LDA算法调研报告

    千次阅读 2016-07-30 00:52:54
    LDA算法调研报告 1、LDA算法概述 本文所阐述的LDA算法全称为Latent Dirichlet Allocation(网上没有标准的中文名称,我称之为潜在狄利克雷分配算法),不是线性判别分析算法(Linear Discriminant Analysis)。...
  • LDA算法

    千次阅读 2020-05-25 05:44:23
    LDA(Latent Dirichlet Allocation)是一种无监督的机器学习模型,该模型将文档作为输入,而将主题作为输出。 该模型还说明每个文档谈论每个主题的百分比。 主题表示为单词的加权列表。 主题示例如下所示: 花 0,2 |...
  • python 基于LDA算法的长文本主题提取分类并预测类别

    千次阅读 多人点赞 2020-04-26 11:53:07
    Lda算法原理,知乎上有很完善的算法介绍,这里就不多废话了。 数据准备 这一阶段主要是对你的问题本进行处理,清洗你的数据。中文文本预处理,主要包括去空格、去表单符号、去停用词、分词等。根据个人需求进行文本...
  • LDA和PCA的对比(并没有公式推导,改日会写) 先补一补数学(不需要): 方差——概率论和统计方差衡量随机变量或一组数据时离散程度的度量;概率论中方差用来度量随机变量和其数学期望之间的偏离程度。统计中的方差...
  • LDA算法总结

    千次阅读 2015-04-13 15:04:30
    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html http://www.cnblogs.com/jerrylea
  • LDA算法的学习LDA算法的基本思想 LDA算法的基本思想
  • 秒懂---LDA算法

    万次阅读 2017-12-02 13:03:52
    线性判别分析LDA原理总结  在主成分分析(PCA)原理总结中,我们...LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。  在学习LDA之前
  • LDA算法(MATLAB实现)

    热门讨论 2012-11-06 16:02:33
    用matlab写的LDA代码,比较好用!
  • 本篇文章的呢主要写的使用spark ml 中的lda算法提取文档的主题的方法思路,不牵扯到lda的 算法原理。至于算法请参照http://www.aboutyun.com/thread-20130-1-1.html 这篇文章 使用lda算法对中文文本聚类并提取主题...
  • LDA算法——线性判别

    多人点赞 2021-09-11 13:36:42
    由PCA的原理我们可知,这些数据点在经PCA处理后会被映射到x轴上,如下所示: 可以发现,投影后,红色数据点和蓝色数据点并不能很好地区分开。思考其背后的原因,在这个例子中,我们的数据点有了类别标签,而PCA...
  • 算法介绍: LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了...
  • 降维算法LDA原理推导

    千次阅读 2018-04-11 14:23:11
    6. LDA算法的主要优点有:1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。7.LDA算法的主要缺点...
  • LDA原理与fisherface实现

    千次阅读 2018-04-19 21:05:46
    LDA(Linear Discriminate Analysis) ...2.LDA算法步骤 LDA算法的主要优点 PCA和LDA的分析比较 1.LDA数学原理 所谓分类器,一般是将输入空间X,根据需要划分的类别,将输入空间划分为一些...
  • LDA-原理解析

    万次阅读 多人点赞 2018-09-07 15:19:55
    在之前的一篇博客机器学习中的数学(7)——PCA的数学原理中深入讲解了,PCA的数学原理。谈到PCA就不得不谈LDA,他们就像是一对孪生兄弟,总是被人们放在一起学习,比较。这这篇博客中我们就来谈谈LDA模型。由于水平...
  • 3.1 二类LDA算法 1.二类LDA原理 \quad \quadLDA(Linear Discriminant Analysis)是是一种监督学习的降维技术,LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”,即分类依据是方差。 \quad \...
  • 主成分分析(PCA)和线性判别分析(LDA原理简介

    万次阅读 多人点赞 2018-02-04 21:58:53
    本文整理自下面的博客,对PCA和LDA原理进行介绍,并对比了其不同点。 1).主成分分析(PCA)原理详解 2).线性判别分析LDA与主成分分析PCA 3). PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别 4).什么...
  • LDA是一种文档主题生成模型,也称为三层贝叶斯概率模型,包含词、主题和文档三层结构。利用文档中单词的共现关系来对单词按主题聚类,得到“文档-主题”和“主题-单词”2个概率分布。 •LDA认为一篇文章的每个词...
  • LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并...
  • LDA原理

    2019-07-15 13:48:55
    参考:LDA原理 基本原理 LDA的全称是Linear Discriminant Analysis,即线性判别分析,是一种经典的降维方法,LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不...
  • 通俗易懂的LDA降维原理

    千次阅读 2020-05-23 18:10:44
    它目前也是机器学习领域中比较经典而且又热门的一种算法。 还记得在PCA中是怎样做的吗?简单来说,是将数据映射到方差比较大的方向上,最后用数学公式推导出矩阵的前TopN的特征向量,这里的方差可以理解为数据内部...
  • 在主成分分析(PCA)原理...LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理。  在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,231
精华内容 2,892
关键字:

lda算法原理