LDA 线性判别分析

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的点区分开。

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)算法分析

时间: 2024-08-05 06:34:18

LDA 线性判别分析的相关文章

降维方法-LDA线性判别分析

降维-LDA线性判别分析 [机器学习]LDA线性判别分析 1. LDA的基本思想 2. LDA求解方法 3. 将LDA推广到多分类 4. LDA算法流程 5. LDA和PCA对比 [附录1]瑞利商与广义瑞利商 线性判别分析 (Linear Discriminant Analysis,LDA)是一种经典的线性学习方法,在二分类问题上因为最早由[Fisher,1936]提出,亦称"Fisher判别分析".(严格说来LDA与Fisher判别分析稍有不同,LDA假设了各类样本的协方差矩阵相同且

线性判别分析(Linear Discriminant Analysis-LDA)

Linear Discriminant Analysis(LDA线性判别分析) 用途:数据预处理中的降维,分类任务 目标:LDA关心的是能够最大化类间区分度的坐标轴成分,将特征空间(数据集中的多维样本)投影到一个维度更小的k维子空间中,同时保持区分类别的信息. 原理:投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近方法 监督性:LDA是"有监督"的,它计算的是另一类特定的方向 投影:找到更合适分类的空间 与PCA不同,更

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

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解L

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

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是

机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA

本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensionality) 维数灾难就是说当样本的维数增加时,若要保持与低维情形下相同的样本密度,所需要的样本数指数型增长.从下面的图可以直观体会一下.当维度很大样本数量少时,无法通过它们学习到有价值的知识:所以需要降维,一方面在损失的信息量可以接受的情况下获得数据的低维表示,增加样本的密度:另一方面也可以达到去噪

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

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解L

线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA是一个和LDA非常相关的算法,从推导.求解.到算法最终的结果,都有着相当的相似. 本次的内容主要是以推导数学公式为主,都是从算法的物理意义出发,然后一步一步最终推导到最终的式子,LDA和PCA最终的表现都是解一个矩阵特征值的问题,但是理解了如何推导,才能更深刻的理解其中的含义.本次内容要求读者有一些

线性判别分析(LDA)原理

在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结.LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理. 在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的