Fisher判别式(LDA)

摘要:
Fisher判别式简介上面从贝叶斯公式出发,得到了线性判别分析的公式,这里从另外一个角度来看线性判别分析,也就是常说的Fisher判别式。其实Fisher判别式就是线性判别分析,只是在讨论Fisher判别式的时候,更侧重于LDA的数据降维的能力。准确的说,它是在Fisher线性判别式基础上的一个推广。Fisher线性判别式的基本思想就是要最大化类间距离,同时最小化类内距离。

Fisher判别式(LDA)

简介

上面从贝叶斯公式出发,得到了线性判别分析的公式,这里从另外一个角度来看线性判别分析,也就是常说的Fisher判别式。其实Fisher判别式就是线性判别分析(LDA),只是在讨论Fisher判别式的时候,更侧重于LDA的数据降维的能力。

在应用统计学方法解决模式识别、机器学习中的问题的时候,有一个问题总是会出现:维数问题。很多在低维空间里可以解析或者计算的算法,在高维空间里面往往行不通,因此,数据降维就成了处理实际问题中的关键。

单纯的从数学角度考虑,将dd维空间的数据压缩称为1维的数据是非常的容易的。然而,即便样本集合在dd维空间里形成若干紧凑的相互分得开的集合,当把它们投影到某一个直线上的时候,就可能使得这些样本混合在一起无法分别开来。但,在实践中发现,总可以找到某个方向,使得在这个方向的直线上,样本的投影能分开的最好。那么,现在的问题就是,如何根据实际情况找到这条最好的、最容易分类的投影线。这就是线性判别分析(Linear Discriminant Analysis)所要解决的基本问题,线性判别分析在很多时候,也叫做 Fisher’s linear discriminant(Fisher线性判别式)。准确的说,它是在Fisher线性判别式基础上的一个推广。

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

在上面关于线性判别分析的说明中提到,投影后的样本在新的空间需要有最大的类间距离和最小的类内距离。那么,什么是类间距离?什么又是类内距离?线性判别分析又是如何在最大化类间距离的同时最小化类内距离?回答完了这三个问题,就基本上能对线性判别分析有一个基本的了解了。

类间距离

对于线性分类器,有一种观点就是将线性分类器看成是一个降维的操作。这里首先考虑二分类的问题,假设输入向量x是D维的,并使用下面这个变换,将x投影到一个一维的数据y上:

Fisher判别式(LDA)第1张

此时在y上加一个阈值−w0,并以此来做二分类:

Fisher判别式(LDA)第2张

毫无疑问,上面的这种投影操作,会损失大量的样本信息,同时在投影的直线上,可能会使得各个类别的数据相互重叠,无法分别开来。但无论怎样,通过调整ww都可以找到一条最好的直线,使得投影之后类之间的距离能够最大。

一类的数据都像是一个云团,存在各自的分布,那么如何定义两个类之间的距离呢?这里可以先考虑两个类C1,C2各自的均值m1,m2:

Fisher判别式(LDA)第3张

用两个均值m1,m2之间的距离m1−m2,作为类之间的距离,这是一种非常简单直观的类间距离的定义方法。

当两个类分别通过w做投影之后,那么投影之后的类间距离为:

Fisher判别式(LDA)第4张

这里m˜1 是C1投影之后的类均值;m˜2是C2投影之后的类均值。而我们要做的,就是要找一个w能够最大化m˜1−m˜2。但是,从上面的式子可以看出,通过增大w的模,可以无限的增大m˜1−m˜2,为了解决这个问题,需要将w的模设为1:||w||2=1。也即是说,w的模并不重要,重要的是w的方向。

对上面的式子,使用拉格朗日乘子法:

Fisher判别式(LDA)第5张

对w求导之后,得到:

Fisher判别式(LDA)第6张

这个结果也是显然的,使用类的均值作为类间距离,要在投影的时候最大化类间距离,自然要让投影线和(m1−m2)平行。

但是,单纯最大化类间距离真的就可以让投影后类之间的重叠最少吗?看下面这幅图。这幅图是从PRML上截取下来的,这幅图左边就是单纯的最大化类间距离,所以左图中w和 (m1−m2)是平行的。右图是Fisher线性判别式(Fisher linear discriminant)得到的w。

Fisher判别式(LDA)第7张

很显然相对于右图而言,单纯的最大化类间距离无法让投影后类的重叠最小,那么Fisher线性判别式到底又做了什么才能到到这个效果呢?这就是下面要讲的:最小化类内距离。

类内距离

对于一个存在一定的分布的类而言,我们用来定义这个类的类内距离,最常用的,就是方差(variance),方差所表示的,就是数据的离散程度。一个类Ck在w上投影之后,其类内方差为:

Fisher判别式(LDA)第8张

这里 yn=wTxn ,是xn在w上的投影。

我们可以定义,投影后,总的类内方差为:投影后,各自类内方差的总和:s˜21+s˜22

Fisher线性判别式

上面已经介绍了类间距离,也就是类的均值的差;类内距离,也就是类内的方差。Fisher线性判别式的基本思想就是要最大化类间距离,同时最小化类内距离。这里就定义一个比值:

Fisher判别式(LDA)第9张

将这个比值最大化,就可以达到最大化类间距离的同时,最小化类内距离了。

对于原始的数据而言,其类内方差可以写为:

Fisher判别式(LDA)第10张

投影后的类内方差为:

Fisher判别式(LDA)第11张

这里定义原始数据的类内总方差为:

Fisher判别式(LDA)第12张

那么投影后的类内总方差为:

Fisher判别式(LDA)第13张

投影后,类间距离也可以写成相似的形式:

Fisher判别式(LDA)第14张

这里定义:

Fisher判别式(LDA)第15张

那么,投影后的类间距离可以写成为:

Fisher判别式(LDA)第16张

这样,就是可以把Fisher判别式的判别准则重写为下面这个形式:

Fisher判别式(LDA)第17张

其中:

Fisher判别式(LDA)第18张

上面这个式子对w求导之后,可以得到:

Fisher判别式(LDA)第19张

这样,我们就可以得到将投影后的类间距离最大化,同时投影后的类内距离最小化的之间ww。这样,就从一个DD维问题转化为了一个更容易分析和处理的一维问题。

当然,这个问题是一个多对一的问题,从理论上讲,在很多训练样本的情况下,这个方法不仅不能让最小误差率降低,甚至会在一定程度上提高误差率。然而,我们总还是愿意为了得到在一维中操作的方便性,而想要的牺牲一些理论上的分类效果。

此时,最后剩下的问题就是如何在投影后,求解阈值,来进行分类了。阈值点,就是在一维空间中,可以将两类分开的那个点的位置,这个问题相对来说非常的简单,这里不予讨论。

这里有一种特殊情况,就是当数据的条件概率分布函数p(x|Ck)是多远正太函数,并且各个类别的协方差矩阵Σ相同的时候,最佳的判别边界方程为:

Fisher判别式(LDA)第20张

其中:

Fisher判别式(LDA)第21张

从上面的推导可以看出,Fisher判别式就是线性判别分析(LDA),只是在讨论Fisher判别式的时候,更侧重于LDA的数据降维的能力。

使用

# 将数据的特征维度降为一维

# 当然这里可以将n_components设置为任何小于原始特征维度的数目

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

lda = LinearDiscriminantAnalysis(n_components=1)

X= lda.fit(X, y).transform(X)

Y= np.zeros(X_r2.shape)

Fisher判别式(LDA)第22张

免责声明:文章转载自《Fisher判别式(LDA)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php windows环境 安装 Apache-apollo + phpMQTT 实现发送 MQTTmysql查看表中列信息下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

理解 LDA 主题模型

前言 gamma函数 0 整体把握LDA 1 gamma函数 beta分布 1 beta分布 2 Beta-Binomial 共轭 3 共轭先验分布 4 从beta分布推广到Dirichlet 分布 Dirichlet 分布 1 Dirichlet 分布 2 Dirichlet-Multinomial 共轭 主题模型LDA 1 各个基础模型...

方差分析(One-way ANOVA)

举例:饮料的颜色共有四种,分别为橘黄色、粉色、绿色和无色透明。这四种饮料的营养含量、味道、价格、包装等可能影响销售量的因素全部相同,先从地理位置相似、经营规模相仿的五家超级市场上收集了前一期该种饮料的销售量情况,见表1: 超市 无色 粉色 橘黄色 黄色 1 26.5 31.2 27.9 30.8 2 28.7 28.3 25.1 29.6...

统计章节的几个难点

前言 我们已经知道了给定一组数据,计算其众数、中位数、平均数、方差,标准差等的算法公式,但是将一组数据制作成频率分布直方图时,数据信息会有所损失,故相关数据的求解会和前面所用的方法有点不太一样了。 用图算数据 给定频率分布直方图,计算其众数、中位数、平均数、方差,标准差等的算法思路如下: 1、方差:以计算出的平均数为依托,代入公式求解。 2、众数:直方图中...

R语言代写线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

原文链接:http://tecdat.cn/?p=5689 判别分析包括可用于分类和降维的方法。线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术。二次判别分析(QDA)是LDA的变体,允许数据的非线性分离。最后,正则化判别分析(RDA)是LDA和QDA之间的折衷。 本文主要关注LDA,并探讨其在理论和实践中作为分类和可视化技术的用途。由于Q...

计算LDA模型困惑度

http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA主题模型评估方法--Perplexityhttp://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA-math-LDA 文本建...

matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。

最近跑深度学习,提出的feature是4096维的,放到我们的程序里,跑得很慢,很慢。。。。 于是,一怒之下,就给他降维处理了,但是matlab 自带的什么pca( ), princomp( )函数,搞不清楚怎么用的,表示不大明白,下了一个软件包: 名字:Matlab Toolbox for Dimensionality Reduction 链接:http...