通俗易懂的LDA降维原理

目录

例子

LDA降维


在前几篇的文章中,大管提到了PCA降维,有小伙伴私信说在实际情况中,效果不太好。那大管今天就和大家聊一聊另一种降维的方法线性判别分析 (LDA)。它目前也是机器学习领域中比较经典而且又热门的一种算法。

     还记得在PCA中是怎样做的吗?简单来说,是将数据映射到方差比较大的方向上,最后用数学公式推导出矩阵的前TopN的特征向量,这里的方差可以理解为数据内部的离散程度。而LDA不同于PCA的是它是一种有监督的降维方法。下面举一个小例子来直观的说明PCA和LDA的不同降维方法。

例子

如下图所示为两类数据集:

通俗易懂的LDA降维原理

PCA是将数据投影到方差最大的几个相互正交的方向上,以期待保留最多的样本信息。样本的方差越大表示样本的多样性越好。x轴和y轴都不是最理想的投影,故上图中PCA会将数据投影在红色的轴上。

如下图所示数据集:

通俗易懂的LDA降维原理

若根据PCA进行降维,将会把数据映射到红色直线上,这样做投影确实方差最大,但是这样做投影之后两类数据样本将混合在一起,将不再线性可分,甚至是不可分的。上面的这个数据集如果使用LDA降维,找出的投影方向就是黄色直线所在的方向,这样的方法在降维之后,可以很大程度上保证了数据的线性可分的。

LDA降维

从上述例子中可以看到,LDA可以用来对数据分类进行处理。为了说明白LDA的来龙去脉,还是以最简单的二分类问题为例。

假设有C1和C2两个样本数据集,其均值分别为:

通俗易懂的LDA降维原理

投影之后的类间距离为:

通俗易懂的LDA降维原理

将上述两式合并,求最大间距可以表示为:

通俗易懂的LDA降维原理

当 ω 方向与(μ1-μ2)一致的时候,该距离达到最大值。从所举的例子图中也能看出,我LDA的期望是使得两个类间的距离最大,类内的距离最小。

由于不同的类别是在同一个数据集中,所以类内距离也可以定义为不同类的方差之和。故可以定义LDA的目标函数为:

通俗易懂的LDA降维原理

其中D1和D2分别为两个类的类内距离,分别为:

通俗易懂的LDA降维原理

将D1和D2分别代入,J(ω)可以表示为:

通俗易懂的LDA降维原理

为了简化上述公式,这里定义类间距离散度SB和类内距离散度SW分别为:

通俗易懂的LDA降维原理

故可以将式子简化为:

通俗易懂的LDA降维原理

下面使用烂大街而有效的方法最大化J(ω),对ω求偏导,并令其为0,得到:

通俗易懂的LDA降维原理

下面对公式稍作变化,就可以发现一个令人惊讶的结果:

通俗易懂的LDA降维原理

将Sw乘到左边:

通俗易懂的LDA降维原理

      我们居然把目标函数变成了求矩阵的特征值,而投影的方向就是这个特征值对应的特征向量。故对于二分类问题在不考虑投影长度的情况下,我们只要求得样本的均值和类内方差就可以计算出投影方向。

回顾PCA的过程,是不是和LDA很相似呢,但是其原理却不一样,对于无监督学习使用PCA,有监督学习使用LDA。

多内容下载机器学习资料请扫描下方二维码关注小编公众号:程序员大管

通俗易懂的LDA降维原理