基本原理

        LDA的全称是Linear Discriminant Analysis,即线性判别分析,是一种经典的降维方法,LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

        可能还是有点抽象,我们先看看最简单的情况。假设我们有两类数据分别为红色和蓝色,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。

LDA算法案例python lda算法原理_机器学习

        上图中提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。以上就是LDA的主要思想了,当然在实际应用中,我们的数据是多个类别的,我们的原始数据一般也是超过二维的,投影后的也一般不是直线,而是一个低维的超平面。

算法流程

LDA算法案例python lda算法原理_LDA算法案例python_02

与PCA的区别

LDA算法案例python lda算法原理_降维_03

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

LDA算法案例python lda算法原理_降维_04

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

LDA算法案例python lda算法原理_LDA算法案例python_05