目录

  • 1. LDA原理
  • 2. 瑞利商与广义瑞利商
  • 3. LDA二分类
  • 4. LDA多分类
  • 5. LDA降维算法流程
  • 6. LDA优缺点
  • LDA与PCA的区别


1. LDA原理

一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)。LDA是一种监督学习的降维技术,PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。

LDA R语言分析案例 lda函数r语言_机器学习


右图比左图好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。

2. 瑞利商与广义瑞利商

瑞利商(Rayleigh quotient)是指这样的函数R(A,x):
LDA R语言分析案例 lda函数r语言_最小值_02
其中x为非零向量,而A为n×n的Hermitan矩阵。所谓的Hermitan矩阵就是满足共轭转置矩阵和自己相等的矩阵,即LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_03。如果我们的矩阵A是实矩阵,则满足LDA R语言分析案例 lda函数r语言_最小值_04的矩阵即为Hermitan矩阵。
瑞利商R(A,x)有一个非常重要的性质,即它的最大值等于矩阵A最大的特征值,而最小值等于矩阵A的最小的特征值,也就是满足
LDA R语言分析案例 lda函数r语言_最小值_05
广义瑞利商(genralized Rayleigh quotient)是指这样的函数R(A,B,x):
LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_06
其中x为非零向量,而A,B为n×n的Hermitan矩阵。B为正定矩阵。其实我们只要通过将其通过标准化就可以转化为瑞利商的格式。我们令LDA R语言分析案例 lda函数r语言_特征值_07,则分母转化为:
LDA R语言分析案例 lda函数r语言_机器学习_08
而分子转化为:
LDA R语言分析案例 lda函数r语言_最小值_09
LDA R语言分析案例 lda函数r语言_特征值_10
R(A,B,x′)的最大值为矩阵LDA R语言分析案例 lda函数r语言_机器学习_11的最大特征值,或者说矩阵LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_12的最大特征值,而最小值为矩阵LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_12的最小特征值。

3. LDA二分类

假设我们的数据集LDA R语言分析案例 lda函数r语言_特征值_14,其中任意样本LDA R语言分析案例 lda函数r语言_机器学习_15为n维向量,LDA R语言分析案例 lda函数r语言_特征值_16。我们定义LDA R语言分析案例 lda函数r语言_机器学习_17为第j类样本的个数,LDA R语言分析案例 lda函数r语言_方差_18为第j类样本的集合,而LDA R语言分析案例 lda函数r语言_最小值_19为第j类样本的均值向量,定义LDA R语言分析案例 lda函数r语言_特征值_20为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。
LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_21
LDA R语言分析案例 lda函数r语言_机器学习_22
由于是两类数据,因此我们只需要将数据投影到一条直线上即可。假设我们的投影直线是向量w,则对任意一个样本本xi,它在直线w的投影为LDA R语言分析案例 lda函数r语言_特征值_23,对于我们的两个类别的中心点μ0,μ1,在直线w的投影为LDA R语言分析案例 lda函数r语言_特征值_24LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_25。由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化LDA R语言分析案例 lda函数r语言_方差_26,同时我们希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的协方差LDA R语言分析案例 lda函数r语言_最小值_27LDA R语言分析案例 lda函数r语言_方差_28尽可能的小,即最小化LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_29。综上所述,我们的优化目标为:
LDA R语言分析案例 lda函数r语言_特征值_30
类内散度矩阵Sw
LDA R语言分析案例 lda函数r语言_方差_31
类间散度矩阵Sb:
LDA R语言分析案例 lda函数r语言_最小值_32
优化目标重写为广义瑞利商形式:
LDA R语言分析案例 lda函数r语言_方差_33
J(w′)最大值为矩阵LDA R语言分析案例 lda函数r语言_最小值_34的最大特征值,而对应的w′为LDA R语言分析案例 lda函数r语言_最小值_34的最大特征值对应的特征向量!
LDA R语言分析案例 lda函数r语言_最小值_36的特征值和LDA R语言分析案例 lda函数r语言_最小值_34特征值相同
LDA R语言分析案例 lda函数r语言_最小值_36的特征向量LDA R语言分析案例 lda函数r语言_最小值_39LDA R语言分析案例 lda函数r语言_最小值_34的特征向量LDA R语言分析案例 lda函数r语言_特征值_41满足LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_42
注意到对于二类的时候,LDA R语言分析案例 lda函数r语言_方差_43的方向恒平行于LDA R语言分析案例 lda函数r语言_机器学习_44,不妨令LDA R语言分析案例 lda函数r语言_特征值_45,将其带入:LDA R语言分析案例 lda函数r语言_特征值_46,可以得到LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_47, 也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向w了。

4. LDA多分类

假设我们的数据集LDA R语言分析案例 lda函数r语言_特征值_14,其中任意样本LDA R语言分析案例 lda函数r语言_机器学习_15为n维向量,LDA R语言分析案例 lda函数r语言_最小值_50。我们定义LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_51为第j类样本的个数,LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_52为第j类样本的集合,而LDA R语言分析案例 lda函数r语言_机器学习_53为第j类样本的均值向量,定义LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_54为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。
由于我们是多类向低维投影,则此时投影到的低维空间就不是一条直线,而是一个超平面了。假设我们投影到的低维空间的维度为d,对应的基向量为LDA R语言分析案例 lda函数r语言_最小值_55基向量组成的矩阵为W, 它是一个n×d的矩阵。
LDA R语言分析案例 lda函数r语言_机器学习_56
LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_57, LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_58为所有样本均值向量。
LDA R语言分析案例 lda函数r语言_最小值_59
LDA R语言分析案例 lda函数r语言_最小值_60LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_61都是矩阵,不是标量,无法作为一个标量函数来优化!也就是说,我们无法直接用二类LDA的优化方法,怎么办呢?一般来说,我们可以用其他的一些替代优化目标来实现。
LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_62
其中LDA R语言分析案例 lda函数r语言_机器学习_63为A的主对角线元素的乘积,W为n×d的矩阵。
LDA R语言分析案例 lda函数r语言_方差_64
上式最右边是广义瑞利商,最大值是矩阵LDA R语言分析案例 lda函数r语言_最小值_36的最大特征值,最大的d个值的乘积就是矩阵LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_66的最大的d个特征值的乘积,此时对应的矩阵W为这最大的d个特征值对应的特征向量张成的矩阵.
由于W是一个利用了样本的类别得到的投影矩阵,因此它的降维到的维度d最大值为k-1。为什么最大维度不是类别数k呢?因为Sb中每个LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_67的秩为1,因此协方差矩阵相加后最大的秩为k(矩阵的秩小于等于各个相加矩阵的秩的和),但是由于如果我们知道前k-1个LDA R语言分析案例 lda函数r语言_机器学习_68后,最后一个LDA R语言分析案例 lda函数r语言_机器学习_69可以由前k-1个μj线性表示,因此Sb的秩最大为k-1,即特征向量最多有k-1个。

5. LDA降维算法流程

输入:数据集LDA R语言分析案例 lda函数r语言_方差_70,其中任意样本LDA R语言分析案例 lda函数r语言_机器学习_15为n维向量,LDA R语言分析案例 lda函数r语言_方差_72,降维到的维度d。

输出:降维后的样本集LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_73

1) 计算类内散度矩阵LDA R语言分析案例 lda函数r语言_最小值_59

2) 计算类间散度矩阵Sb,二分类:LDA R语言分析案例 lda函数r语言_机器学习_75,多分类:LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_57,

3) 计算矩阵LDA R语言分析案例 lda函数r语言_最小值_36

4)计算LDA R语言分析案例 lda函数r语言_最小值_36的最大的d个特征值和对应的d个特征向量 LDA R语言分析案例 lda函数r语言_最小值_55,得到投影矩阵W

5) 对样本集中的每一个样本特征LDA R语言分析案例 lda函数r语言_机器学习_15,转化为新的样本LDA R语言分析案例 lda函数r语言_特征值_81
6) 得到输出样本集LDA R语言分析案例 lda函数r语言_机器学习_82
一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布,这样利用LDA进行投影后,可以利用极大似然估计计算各个类别投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。

6. LDA优缺点

LDA算法的主要优点有:

1)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。

2)LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

LDA算法的主要缺点有:

1)LDA假设数据符合高斯分布,不适合对非高斯分布样本进行降维,PCA也有这个问题。

2)LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。(一般是基于核函数的线性判别分析,这样把类别数k映射到高维,再去降维,那么就可以绕过最大维度k-1的限制了。当然还有其他方法。
你网上可以找下基于核函数的LDA的资料。)

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

4)LDA可能过度拟合数据。
在LDA里面,对应的特征分解的矩阵都是对称矩阵,所以不会出现复数的特征值。

一般意义上我们说的样本或者特征的协方差矩阵都是针对特征维度的,包括我上文中讲到的协方差矩阵,比如你的特征是二维的,那么你的协方差矩阵就是2x2的。
矩阵中的数据按行排列与按列排列求出的协方差矩阵是不同的,这里默认数据是按行排列。即每一行是一个observation(or sample),那么每一列就是一个随机变量。

LDA R语言分析案例 lda函数r语言_最小值_83


LDA R语言分析案例 lda函数r语言_最小值_84


协方差矩阵的维度等于随机变量的个数,即每一个 observation 的维度。在某些场合前边也会出现 1 / m,而不是 1 / (m - 1).

LDA与PCA的区别

LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。

首先我们看看相同点

1)两者均可以对数据进行降维

2)两者在降维时均使用了矩阵特征分解的思想。

3)两者都假设数据符合高斯分布

我们接着看看不同点

1)LDA是有监督的降维方法,而PCA是无监督的降维方法

2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。

3)LDA除了可以用于降维,还可以用于分类

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

这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。

    

LDA R语言分析案例 lda函数r语言_LDA R语言分析案例_85


    某些某些数据分布下PCA比LDA降维较优,如下图所示:

    

LDA R语言分析案例 lda函数r语言_最小值_86