最近一直在学opencv库里人脸识别中的一些算法代码,有一个模块里有三种算法PCA、LDA、LBPH用来识别人脸,PCA算法本身的基本的数学原理已在上篇文章中有所介绍,这篇文章主要介绍LDA算法的基本的数学原理,同样是搜索网络的资源看到有一篇线性判别分析(Linear Discriminant Analysis, LDA)算法分析 - warmyellow的专栏 - 博客频道 - CSDN.NET(http://blog.csdn.net/warmyellow/article/details/5454943)。在这里呢,就拿过来转到自己的博客里进行学习了。
一. LDA算法概述:
线性判别式分析(Linear Discriminant Analysis,LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别
的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。线性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢
量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间
距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投
影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最
大的类间距离,即模式在该空间中有最佳的可分离性。
二. LDA假设以及符号说明:
假设对于一个空间有m个样本分别为x1,x2,……xm 即 每个x是一个n行的矩阵,其中表示属于i类的样本个数,假设有一个有c个类,则。
三. 公式推导,算法形式化描述
最后再说一点关于LDA的说明:
第 一、降维后的维度是多少?
PCA降维是直接和数据维度相关的,比如原始数据是n维的,那么PCA后,可以任意选取1维、2维,一直到n维都行(当然是对应特征值大的那些)。LDA 降维是直接和类别的个数相关的,与数据本身的维度没关系,比如原始数据是n维的,一共有C个类别,那么LDA降维之后,一般就是1维,2维到C-1维进行选择(当然对应的特征值也是最大的一些),举个例子,假设图象分类,两个类别正例反例,每个图象10000维特征,那么LDA之后,就只有1维特征,并且这维特征的分类能力最好。
二、投影的坐标系是否正交
PCA投影的坐标系都是正交的,而LDA根据类别的标注,关注分类能力,因此不保证投影到的坐标系是正交的(一般都不正交)。