LDA(线性判别算法)
不同于PCA方差最大化理论,LDA算法的思想是将数据投影到低维空间之后,使得同一类数据尽可能的紧凑,不同类的数据尽可能分散。因此,LDA算法是一种有监督的机器学习算法。同时,LDA有如下两个假设:
(1) 原始数据根据样本均值进行分类。
(2) 不同类的数据拥有相同的协方差矩阵。
当然,在实际情况中,不可能满足以上两个假设。但是当数据主要是由均值来区分的时候,LDA一般都可以取得很好的效果。
图1 LDA和PCA对数据进行降维
如图1所示,原始数据主要是根据均值来划分的,此时LDA降维效果很好,但是PCA效果就很差。
图2 LDA和PCA对数据进行降维
图2的两类数据主要区别是方差不同,因此此时PCA降维效果比较好,而LDA降维效果比较差。
1 基本思想
将原始数据投影至低维空间,尽量使同一类的数据聚集,不同类的数据尽可能分散。
1 原理推导
假设我们现已有如下的数据集 其中样本
为任意
维向量,类别
,定义
是第
类样本的个数,
是第
类样本的集合,
是第
类样本的均值,
是第
类样本的均值。
(1) 二分类情况
此时k值只能为0,1两种。可得 的表达式如下
的表达式
因为将其降维到一维,寻找一个向量 ,不同类的样本中心投影之后得:
不同类的方差投影之后为:
为了使同一类更加聚集,不同类更加分散,我们定义如下公式:
最大化上式就是使得同一类内的数据点更加聚集,不同类的数据点更加分散。
我们定义类内散度矩阵:
用于表示各个类内数据点聚集程度。
定义类间散度矩阵:
用于表示不同类的分散程度。 可以改写成为:
由于分子和分母都是关于w的二次项,不失一般性,我们可以设
求J的最大值就可以转换为:
运用拉格朗日乘子法(具体推导和PCA类似)可得当
时,此时函数 有最大值
。但是大多数情况下
是不可逆的,因此我们需要进行如下操作:
其中是 一个很小的数,来保证
可逆。
(1) 多分类问题
多分类问题推导基本和上述推导类似,不过此时类间散度矩阵为:
其中u为所有数据点求平均值所得。
类内散度矩阵为:
此时设我们投影到的低维空间维度为 ,对应的基向量为
,构成矩阵
。函数
的定义如下:
此时 是一个矩阵,不是一个标量,为了可以最优化,我们常常使用对角线的元素来代替。此时
的定义如下:
求解方法与二分类类似,当
时,函数有最大值。所以我们取前 个最大的特征值对应的特征向量组成
。由于
是k个秩为1的矩阵相加而成,所以其秩小于等于k。又由于我们知道前k-1的
之后,最后一个
可以由前k-1个表示,因此,LDA降维算法降维之后的维度最高为k-1。
3 算法流程
(1)计算类内散度矩阵
(2)计算类间散度矩阵
(3)计算矩阵
(4)对矩阵 进行特征分解,计算最大的
个最大的特征值对应的特征向量组成
。
(5)计算投影后的数据点
4 举例
设有如下数据集
其中每一行为一个样本,1、2列为属性,最后一列表示类别。我们计算类内散度矩阵:
类间散度矩阵:
计算:
计算特征值和特征矩阵:
选取最大的特征值及其对应的特征矩阵
计算投影之后的点为
5 优缺点和特性
优点:
(1) 计算速度快
(2) 充分利用了先验知识
缺点:
(1) 当数据不是高斯分布时候,效果不好,PCA也是。
(2) 降维之后的维数最多为类别数-1。
特点:
降维之后的维数最多为类别数-1。所以当数据维度很高,但是类别数少的时候,算法并不适用。
6 参考
线性判别分析LDA原理总结 - 刘建平Pinard - 博客园
线性判别分析(LDA) - Lavi的专栏 - CSDN博客
其他文章:
超爱学习:机器学习算法-PCA降维zhuanlan.zhihu.com
超爱学习:机器学习算法-MDS降维算法zhuanlan.zhihu.com