LDA线性判别分析
线性判别分析(Linear Discriminant Analysis,LDA)是一种有监督学习算 法,同时经常被用来对数据进行降维。它是Ronald Fisher在1936年发明的,有些资 料上也称之为Fisher LDA(Fisher’s Linear Discriminant Analysis)。LDA是目前机 器学习、数据挖掘领域中经典且热门的一种算法。
相比于PCA,LDA可以作为一种有监督的降维算法。在PCA中,算法没有考 虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向上而已。
假设用不同的颜色标注C1、C2两个不同类别的数据,如图4.4所示。根据PCA 算法,数据应该映射到方差最大的那个方向,亦即y轴方向。但是,C1,C2两个不
同类别的数据就会完全混合在一起,很难区分开。所以,使用PCA算法进行降维 后再进行分类的效果会非常差。但是,如果使用LDA算法,数据会映射到x轴方 向。那么,LDA算法究竟是如何做到这一点的呢?
LDA的中心思想——最大化类间距离和最小化类内距 离。
我们已经找到了使得类间距离尽可能大的投影方式,现在只需要同 时优化类内方差,使其尽可能小。我们将整个数据集的类内方差定义为各个类分 别的方差之和,将目标函数定义为类间距离和类内距离的比值,于是引出我们需 要最大化的目标
Fisher LDA相比PCA更善于对有类别信息的数据进行降 维处理,但它对数据的分布做了一些很强的假设,例如,每个类数据都是高斯分 布、各个类的协方差相等。尽管这些假设在实际中并不一定完全满足,但LDA已 被证明是非常有效的一种降维方法。主要是因为线性模型对于噪声的鲁棒性比较 好,但由于模型简单,表达能力有一定局限性,我们可以通过引入核函数扩展 LDA方法以处理分布较为复杂的数据。
PCA是有监督的降维算法,而LDA是无监督的降维 算法。虽然在原理或应用方面二者有一定的区别,但是从这两种方法的数学本质 出发,我们不难发现二者有很多共通的特性。
LDA线性判别分析与PCA降维的区别
首先从目标出发,PCA选择的是投影后数据方差最大的方向。由于它是无监 督的,因此PCA假设方差越大,信息量越多,用主成分来表示原始数据可以去除 冗余的维度,达到降维。而LDA选择的是投影后类内方差小、类间方差大的方 向。其用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据 在这些方向上投影后,不同类别尽可能区分开。
举一个简单的例子,在语音识别中,我们想从一段音频中提取出人的语音信 号,这时可以使用PCA先进行降维,过滤掉一些固定频率(方差较小)的背景噪 声。但如果我们的需求是从这段音频中区分出声音属于哪个人,那么我们应该使 用LDA对数据进行降维,使每个人的语音信号具有区分性。
另外,在人脸识别领域中,PCA和LDA都会被频繁使用。基于PCA的人脸识 别方法也称为特征脸(Eigenface)方法,该方法将人脸图像按行展开形成一个高 维向量,对多个人脸特征的协方差矩阵做特征值分解,其中较大特征值对应的特 征向量具有与人脸相似的形状,故称为特征脸。Eigenface for Recognition一文中将 人脸用7个特征脸表示(见图4.7),于是可以把原始65536维的图像特征瞬间降到7 维,人脸识别在降维后的空间上进行。然而由于其利用PCA进行降维,一般情况 下保留的是最佳描述特征(主成分),而非分类特征。如果我们想要达到更好的 人脸识别效果,应该用LDA方法对数据集进行降维,使得不同人脸在投影后的特 征具有一定区分性。
从应用的角度,我们可以掌握一个基本的原则——对无监督的任务使用PCA
进行降维,对有监督的则应用LDA。 ·总结与扩展·
至此,我们从数学原理、优化目标以及应用场景的角度对比了PCA和LDA这 两种经典的线性降维方法,对于非线性数据,可以通过核映射等方法对二者分别 进行扩展以得到更好的降维效果。关于特征脸这一降维应用,有兴趣的读者可以 拜读最经典的Eigenface论文[4],更好地理解降维算法的实际应用。