LDA(线性判别算法)

不同于PCA方差最大化理论,LDA算法的思想是将数据投影到低维空间之后,使得同一类数据尽可能的紧凑,不同类的数据尽可能分散。因此,LDA算法是一种有监督的机器学习算法。同时,LDA有如下两个假设:

(1) 原始数据根据样本均值进行分类。

(2) 不同类的数据拥有相同的协方差矩阵。

当然,在实际情况中,不可能满足以上两个假设。但是当数据主要是由均值来区分的时候,LDA一般都可以取得很好的效果。

机器学习-LDA(线性判别)降维算法

图1 LDA和PCA对数据进行降维

如图1所示,原始数据主要是根据均值来划分的,此时LDA降维效果很好,但是PCA效果就很差。

机器学习-LDA(线性判别)降维算法

图2 LDA和PCA对数据进行降维

图2的两类数据主要区别是方差不同,因此此时PCA降维效果比较好,而LDA降维效果比较差。

1 基本思想

将原始数据投影至低维空间,尽量使同一类的数据聚集,不同类的数据尽可能分散。

1 原理推导

假设我们现已有如下的数据集 机器学习-LDA(线性判别)降维算法 其中样本

机器学习-LDA(线性判别)降维算法 为任意 机器学习-LDA(线性判别)降维算法 维向量,类别 机器学习-LDA(线性判别)降维算法 ,定义 机器学习-LDA(线性判别)降维算法 是第 机器学习-LDA(线性判别)降维算法 类样本的个数, 机器学习-LDA(线性判别)降维算法 是第 机器学习-LDA(线性判别)降维算法 类样本的集合,机器学习-LDA(线性判别)降维算法 是第 机器学习-LDA(线性判别)降维算法 类样本的均值,机器学习-LDA(线性判别)降维算法 是第 机器学习-LDA(线性判别)降维算法 类样本的均值。

(1) 二分类情况

此时k值只能为0,1两种。可得 机器学习-LDA(线性判别)降维算法 的表达式如下

机器学习-LDA(线性判别)降维算法

机器学习-LDA(线性判别)降维算法 的表达式

机器学习-LDA(线性判别)降维算法

因为将其降维到一维,寻找一个向量 机器学习-LDA(线性判别)降维算法 ,不同类的样本中心投影之后得:

机器学习-LDA(线性判别)降维算法

不同类的方差投影之后为:

机器学习-LDA(线性判别)降维算法

为了使同一类更加聚集,不同类更加分散,我们定义如下公式:

机器学习-LDA(线性判别)降维算法

最大化上式就是使得同一类内的数据点更加聚集,不同类的数据点更加分散。

我们定义类内散度矩阵:

机器学习-LDA(线性判别)降维算法

用于表示各个类内数据点聚集程度。

定义类间散度矩阵:

机器学习-LDA(线性判别)降维算法

用于表示不同类的分散程度。 机器学习-LDA(线性判别)降维算法 可以改写成为:

机器学习-LDA(线性判别)降维算法

由于分子和分母都是关于w的二次项,不失一般性,我们可以设

机器学习-LDA(线性判别)降维算法

求J的最大值就可以转换为:

机器学习-LDA(线性判别)降维算法

机器学习-LDA(线性判别)降维算法

运用拉格朗日乘子法(具体推导和PCA类似)可得当

机器学习-LDA(线性判别)降维算法

时,此时函数 机器学习-LDA(线性判别)降维算法 有最大值 机器学习-LDA(线性判别)降维算法 。但是大多数情况下 机器学习-LDA(线性判别)降维算法 是不可逆的,因此我们需要进行如下操作:

机器学习-LDA(线性判别)降维算法

其中是 机器学习-LDA(线性判别)降维算法 一个很小的数,来保证 机器学习-LDA(线性判别)降维算法 可逆。

(1) 多分类问题

多分类问题推导基本和上述推导类似,不过此时类间散度矩阵为:

机器学习-LDA(线性判别)降维算法

其中u为所有数据点求平均值所得。

类内散度矩阵为:

机器学习-LDA(线性判别)降维算法

此时设我们投影到的低维空间维度为 机器学习-LDA(线性判别)降维算法 ,对应的基向量为 机器学习-LDA(线性判别)降维算法 ,构成矩阵

机器学习-LDA(线性判别)降维算法 。函数 机器学习-LDA(线性判别)降维算法 的定义如下:

机器学习-LDA(线性判别)降维算法

此时机器学习-LDA(线性判别)降维算法 是一个矩阵,不是一个标量,为了可以最优化,我们常常使用对角线的元素来代替。此时 机器学习-LDA(线性判别)降维算法 的定义如下:

机器学习-LDA(线性判别)降维算法

求解方法与二分类类似,当

 

机器学习-LDA(线性判别)降维算法

时,函数有最大值。所以我们取前 机器学习-LDA(线性判别)降维算法 个最大的特征值对应的特征向量组成 机器学习-LDA(线性判别)降维算法 。由于 机器学习-LDA(线性判别)降维算法 是k个秩为1的矩阵相加而成,所以其秩小于等于k。又由于我们知道前k-1的 机器学习-LDA(线性判别)降维算法 之后,最后一个 机器学习-LDA(线性判别)降维算法 可以由前k-1个表示,因此,LDA降维算法降维之后的维度最高为k-1。

3 算法流程

(1)计算类内散度矩阵 机器学习-LDA(线性判别)降维算法

(2)计算类间散度矩阵 机器学习-LDA(线性判别)降维算法

(3)计算矩阵 机器学习-LDA(线性判别)降维算法

(4)对矩阵 机器学习-LDA(线性判别)降维算法进行特征分解,计算最大的 机器学习-LDA(线性判别)降维算法 个最大的特征值对应的特征向量组成 机器学习-LDA(线性判别)降维算法 。

(5)计算投影后的数据点 机器学习-LDA(线性判别)降维算法

4 举例

设有如下数据集

机器学习-LDA(线性判别)降维算法

其中每一行为一个样本,1、2列为属性,最后一列表示类别。我们计算类内散度矩阵:

机器学习-LDA(线性判别)降维算法

类间散度矩阵:

机器学习-LDA(线性判别)降维算法

计算:

机器学习-LDA(线性判别)降维算法

计算特征值和特征矩阵:

机器学习-LDA(线性判别)降维算法

机器学习-LDA(线性判别)降维算法

选取最大的特征值及其对应的特征矩阵

机器学习-LDA(线性判别)降维算法

计算投影之后的点为

机器学习-LDA(线性判别)降维算法

5 优缺点和特性

优点:

(1) 计算速度快

(2) 充分利用了先验知识

缺点:

(1) 当数据不是高斯分布时候,效果不好,PCA也是。

(2) 降维之后的维数最多为类别数-1。

特点:

降维之后的维数最多为类别数-1。所以当数据维度很高,但是类别数少的时候,算法并不适用。

 

6 参考

线性判别分析LDA原理总结 - 刘建平Pinard - 博客园

线性判别分析(LDA) - Lavi的专栏 - CSDN博客

 

 

其他文章:

超爱学习:机器学习算法-PCA降维​zhuanlan.zhihu.com

超爱学习:机器学习算法-MDS降维算法​zhuanlan.zhihu.com

相关文章: