降维方法-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假设了各类样本的协方差矩阵相同且满秩。)
1. LDA的基本思想
LDA的基本思想是: 给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离,在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。图3.3给出了一个二维示意图。
2. LDA求解方法
问:LDA最终要求什么?
求投影空间W。 假设要投影到d维空间,W为这最大的d个特征值对应的特征向量张成的矩阵。所以问题转化为求解特征向量w
求解过程如下:
给定数据集,,令Xi、цi、∑i分别表示第i∈{0,1}类示例的集合、均值向量、协方差矩阵。
若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为;若将所有样本点都投影到直线上,则两类样本的协方差分别为。
由于直线是一维空间,因此。
本着同类样例的投影点尽可能接近、异类样例的投影点尽可能远离的原则,欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,即尽可能小;而欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即尽可能大。同时考虑二者,则可得到欲最大化的目标
定义"类内散度矩阵"
以及"类间散度矩阵"
则式 (3.32)可重写为
这就是LDA欲最大化的目标,即Sw与Sb的"广义瑞利商" (Rayleigh)。根据广义瑞利商的性质,我们知道我们的J(w)最大值为矩阵的最大特征值,而对应的为的最大特征值对应的特征向量!(具体的瑞利商的知识见【附录1】)
如何求解w呢?(w向量决定投影方向)
如何确定ω呢? 注意到式(3.35)的分子和分母都是关于ω的二次项,因此式(3.35)的解与ω的长度无关,只与其方向有关。(why? 二次项的性质,若w是一个解,则对于任意常数α,αw也是式(3.35)的解.)
不失一般性,令,则式(3.35)等价于
由拉格朗日乘子法,上式等价于
其中λ是拉格朗日乘子。注意到的方向恒为,不妨令
代入式 (3.37) 即得
3. 将LDA推广到多分类
如何将LDA推广到多分类任务中?
假定存在N个类,且第i类示例数为,我们先定义"全局散度矩阵"
其中μ是所有示例的均值向量。将类内散度矩阵重定义为每个类别的散度矩阵之和,即:
其中,
例如:三类问题如下直观图所示:
显然,多分类 LDA 可以有多种实现方法:使用 三者中的任何两个即可。
常见的一种实现是采用优化目标:
其中的tr()为矩阵的迹,一个n×n的对角矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹(或迹数),一般记作tr(A)。 这个优化目标实际上等价于求解N-1个w(特征向量)组合成W。
若将W视为一个投影矩阵,则多分类LDA将样本投影到N-1维空间,N-1通常远小于数据原有的属性数(维度)。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此LDA也常被视为一种经典的监督降维技术(可用于特征提取)。
附:另一种多类推广原理解释:
问: LDA是什么?基本原理?
LDA是线性判别分析,LDA的基本思想是: 给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离,在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
问:LDA最终要求什么?
求投影空间W。
问:W是如何构成的?
假设要投影到d维空间,W为这最大的d个特征值对应的特征向量张成的矩阵。
分析一下,既然LDA的二分类的训练过程,是将训练样本点投影到一条直线上(降维到一维),那么投影空间就是一条直线,W=(w1)是最大特征值对应的特征向量,代表这条直线一维空间(W=(w1)=n*1维度)。如果是多分类情况,多分类LDA将样本投影到d维空间,d通常远小于数据原有的属性数(维度),那么投影空间W=(w1,w2,…w(d) )为最大的d个特征值对应的特征向量张成的矩阵,则投影矩阵W=n*d维度。
注意:上述w1是向量,在样本是n维向量,类别数为k时,w1应是n维向量,则投影到d维空间时,投影空间W=(w1,w2,…w(d) )=n*d维度
问:LDA降维最多降到多少?(类别数为k)
LDA降维最多降到类别数k-1的维数。由于投影矩阵W是一个利用了样本的类别得到的投影矩阵(n*d,一般d<<n),而的秩最大为k-1(具体分析见下一问),,所以最多有k-1个非0的特征值,即最多有k-1个特征向量。因此它降维的维度d最大值为k-1。
再问:为什么最大维度不是类别数k呢?
因为的秩最大为k-1,即特征向量最多有k-1个。 因为中每个的秩为1,因此各类的协方差矩阵相加后最大的秩为k(矩阵的秩小于等于各个相加矩阵的秩的和),但是由于如果我们知道前k-1个后,最后一个可以由前k-1个线性表示(这是由于k个和不是线性无关的, 前k-1个和可以表示线性表出第k个i ),因此的秩最大为k-1,所以的秩最大也为k-1。即特征向量最多有k-1个。
4. LDA算法流程
以上就是使用LDA进行降维的算法流程。
实际上LDA除了可以用于降维以外,还可以用于分类。一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。
5. LDA和PCA对比
LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。
首先我们看看相同点:
1)两者均可以对数据进行降维。
2)两者在降维时均使用了矩阵特征分解的思想。(求特征值、特征向量)
3)两者都假设数据符合高斯分布。
我们接着看看不同点:
1)LDA是有监督的降维方法,而PCA是无监督的降维方法
2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
3)LDA除了可以用于降维,还可以用于分类。
4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
这点可以从下图形象的看出,在不同数据分布下LDA和PCA降维的优势不同。二者各有优缺。
附: LDA算法的主要优点有:
1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。
LDA算法的主要缺点有:
1)LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
3)LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
4)LDA可能过度拟合数据。
---------------------------------------------- 附录 ------------------------------------------------
【附录1】瑞利商与广义瑞利商
首先来看看瑞利商的定义。瑞利商是指这样的函数:
其中为非零向量,而为的Hermitan矩阵。所谓的Hermitan矩阵就是满足共轭转置矩阵和自己相等的矩阵,即
。 如果我们的矩阵A是实矩阵,则满足的矩阵即为Hermitan矩阵。
利用前面的瑞利商的性质,我们可以很快的知道 的最大值为矩阵的最大特征值,或者说矩阵
的最大特征值。而最小值为矩阵的最小特征值。
------------------------------------------- END -------------------------------------
参考:周志华《机器学习》