LDA算法总结

主要是参考了文章

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/jerrylead/archive/2011/04/21/2024389.html

上面的三篇博客总结的已经非常好:

这里再将最重要的部分提出来总结一下:

LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。要说明白LDA,首先得弄明白线性分类器(Linear
Classifier
):因为LDA是一种线性分类器。对于K-分类的一个分类问题,会有K个线性函数:

当满足条件:对于所有的j,都有Yk > Yj,的时候,我们就说x属于类别k。对于每一个分类,都有一个公式去算一个分值,在所有的公式得到的分值中,找一个最大的,就是所属的分类了。

上式实际上就是一种投影,是将一个高维的点投影到一条高维的直线上,LDA最求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量的按类别区分开,当k=2即二分类问题的时候,如下图所示:

当x是二维的,我们就是要找一条直线(方向为w)来做投影,然后寻找最能使样本点分离的直线。如下图:

从直观上来看,右图比较好,可以很好地将不同类别的样本点分离。

计算过程不再讲解:主要是满足一个原则:

我们分类的目标是,使得类别内的点距离越近越好(集中),类别间的点越远越好。

拉格朗日乘子法的限制条件,带入得到:w是对应的低维的投影矩阵,Sb表示的原始数据类别中心点之间的距离,Sw表示的各个类别中数据点与其中心点的距离平方和

这样的式子就是一个求特征值的问题了。

对于N(N>2)分类的问题,我就直接写出下面的结论了:对于多类别的情况Sw并没有发生改变,Sb因为多类别,是利用全部数据算出来一个中心点计算距离平方和获得

PCA有很多种计算的方法,利用最大化方差,最小化损失法是利用了特征值求解的方法,和LDA相似

如果利用特征值分解,那么就是类似于SVD

对比一下PCA和LDA:

PCA与LDA,两者的思想和计算方法非常类似,但是一个是作为独立的算法存在,另一个更多的用于数据的预处理的工作。

LDA的实例:

PCA与LDA的降维对比:

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

LDA既然叫做线性判别分析,应该具有一定的预测功能,比如新来一个样例x,如何确定其类别?

拿二值分来来说,我们可以将其投影到直线上,得到y,然后看看y是否在超过某个阈值y0,超过是某一类,否则是另一类。而怎么寻找这个y0呢?

根据中心极限定理,独立同分布的随机变量和符合高斯分布,然后利用极大似然估计求

然后用决策理论里的公式来寻找最佳的y0,详情请参阅PRML。

这是一种可行但比较繁琐的选取方法,可以看第7节(一些问题)来得到简单的答案。

5. 使用LDA的一些限制

1、 LDA至多可生成C-1维子空间(这里应该是因为在多类别中计算特征变量的前提是Sb可逆,所以对秩有一定的要求)

LDA降维后的维度区间在[1,C-1],与原始特征数n无关,对于二值分类,最多投影到1维。

2、 LDA不适合对非高斯分布样本进行降维。

上图中红色区域表示一类样本,蓝色区域表示另一类,由于是2类,所以最多投影到1维上。不管在直线上怎么投影,都难使红色点和蓝色点内部凝聚,类间分离。

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

上图中,样本点依靠方差信息进行分类,而不是均值信息。LDA不能够进行有效分类,因为LDA过度依靠均值信息。

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

时间: 2024-10-22 04:15:56

LDA算法总结的相关文章

LDA算法入门

http://blog.csdn.net/warmyellow/article/details/5454943 一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的.性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维

LDA算法

本文原创, 转载请注明出处:http://www.cnblogs.com/gufeiyang/p/5020819.html 本文目录: 1.Gamma函数 2.Beta/Dirichlet分布 3.LDA文本建模 4.吉普斯抽样概率公式推导 1.Gamma函数 T(x)= ∫ tx-1 e-tdt    T(x+1) = xT(x) 若x为整数,则有 T(n) = (n-1)! 2.Dirichlet分布 这里抛出两个问题: 问题1: (1) X1, X2......Xn 服从Uniform(0

TopicModel - LSA、PLSA、LDA算法

http://blog.csdn.net/pipisorry/article/details/42560693 1.TopicModel - LSA(隐性语义分析)的早期方法SVD 2.TopicModel - EM算法及PLSA的EM推导 from:http://blog.csdn.net/pipisorry/article/details/42560693 ref:

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

LDA算法入门 一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的.性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳

线性判别分析(LDA)算法总结

LDA也称Fisher线性判别法,它是一种非迭代的分类算法.算法的主要思想将特征空间中的样本投影到该空间的一条直线上以实现从高维到一维的数据压缩.显然这样的投影有很多方向,而LDA算法就是寻找一个最佳投影方向来使样本的类内距离最小而类间距离最大. 投影方向:1.投影后不同类别的样本均值的差别应尽可能大,即类间距离尽可能大:2.投影后相同类别的样本方差应尽可能小,即类内距离应尽可能小. 定义一个Fisher准则函数(关于准则函数是如何确定的可以参看相关课本), 其中向量W是投影的方向向量,Sb和S

LDA工程实践之算法篇之(一)算法实现正确性验证(转)

研究生二年级实习(2010年5月)开始,一直跟着王益(yiwang)和靳志辉(rickjin)学习LDA,包括对算法的理解.并行化和应用等等.毕业后进入了腾讯公司,也一直在从事相关工作,后边还在yiwang带领下,与孙振龙.严浩等一起实现了一套大规模并行的LDA训练系统——Peacock.受rick影响,决定把自己对LDA工程实践方面的一些理解整理出来,分享给大家,其中可能有一些疏漏和错误,还请批评指正. Rickjin在<LDA数学八卦>[1]一文中已经对LDA的数学模型以及基本算法介绍得比

LDA(主题模型算法)

LDA整体流程 先定义一些字母的含义: 文档集合D,topic集合T D中每个文档d看作一个单词序列< w1,w2,...,wn >,wi表示第i个单词,设d有n个单词.(LDA里面称之为word bag,实际上每个单词的出现位置对LDA算法无影响) D中涉及的所有不同单词组成一个大集合VOCABULARY(简称VOC) LDA以文档集合D作为输入(会有切词,去停用词,取词干等常见的预处理,略去不表),希望训练出的两个结果向量(设聚成k个Topic,VOC中共包含m个词): 对每个D中的文档d

文本主题模型之LDA(三) LDA求解之变分推断EM算法

文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法 本文是LDA主题模型的第三篇,读这一篇之前建议先读文本主题模型之LDA(一) LDA基础,同时由于使用了EM算法,如果你对EM算法不熟悉,建议先熟悉EM算法的主要思想.LDA的变分推断EM算法求解,应用于Spark MLlib和Scikit-learn的LDA算法实现,因此值得好好理解. 1. 变分推断EM算法求解LDA的思路 首先,回顾L

LDA主题模型算法

随着互联网的发展,文本分析越来越受到重视.由于文本格式的复杂性,人们往往很难直接利用文本进行分析.因此一些将文本数值化的方法就出现了.LDA就是其中一种很NB的方法. LDA有着很完美的理论支撑,而且有着维度小等一系列优点.本文对LDA算法进行介绍,欢迎批评指正. 本文目录: 1.Gamma函数 2.Dirichlet分布 3.LDA文本建模 4.吉普斯抽样概率公式推导 5.使用LDA 1.Gamma函数 T(x)= ∫ tx-1 e-tdt    T(x+1) = xT(x) 若x为整数,则有