线性判别法则(Linear Discriminant Analysis)

LDA是一种监督学习。也称为Fisher's linear discriminant。

LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。要说明白LDA,首先得弄明白线性分类器 因为LDA是一种线性分类器。对于K-分类的一个分类问题,会有K个线性函数:

                                                                           

LDA用于多分类 lda分类器原理_二分类

 当满足条件:对于所有的j,都有Yk > Yj,的时候,我们就说x属于类别k。对于每一个分类,都有一个公式去算一个分值,在所有的公式得到的分值中,找一个最大的,就是所属的分类。

 上式实际上就是一种投影,是将一个高维的点投影到一条高维的直线上,LDA最求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量的按类别区分开,当k=2即二分类问题的时候,如下图所示:

                                        

LDA用于多分类 lda分类器原理_方差_02

 红色的方形的点为0类的原始点、蓝色的方形点为1类的原始点,经过原点的那条线就是投影的直线,从图上可以清楚的看到,红色的点和蓝色的点被原点明显的分开了,这个数据只是随便画的,如果在高维的情况下,看起来会更好一点。

下面来推导一下二分类LDA问题的公式:

假设用来区分二分类的直线(投影函数)为:

LDA用于多分类 lda分类器原理_二分类_03

    LDA分类的一个目标是使得不同类别之间的距离越远越好,同一类别之中的距离越近越好,所以我们需要定义几个关键的值。

    类别i的原始中心点为:(Di表示属于类别i的点)

LDA用于多分类 lda分类器原理_线性分类器_04

    类别i投影后的中心点为:

LDA用于多分类 lda分类器原理_线性分类器_05

    衡量类别i投影后,类别点之间的分散程度(方差)为:

LDA用于多分类 lda分类器原理_方差_06

    最终我们可以得到一个下面的公式,表示LDA投影到w后的损失函数:

                                                                                      

LDA用于多分类 lda分类器原理_方差_07

   我们分类的目标是,使得类别内的点距离越近越好(集中),类别间的点越远越好。分母表示每一个类别内的方差之和,方差越大表示一个类别内的点越分散,分子为两个类别各自的中心点的距离的平方,我们最大化J(w)就可以求出最优的w了。想要求出最优的w,可以使用拉格朗日乘子法,但是现在我们得到的J(w)里面,w是不能被单独提出来的,我们就得想办法将w单独提出来。

   我们定义一个投影前的各类别分散程度的矩阵,这个矩阵看起来有一点麻烦,其实意思是,如果某一个分类的输入点集Di里面的点距离这个分类的中心店mi越近,则Si里面元素的值就越小,如果分类的点都紧紧地围绕着mi,则Si里面的元素值越更接近0.

                                                                            

LDA用于多分类 lda分类器原理_方差_08

   带入Si,将J(w)分母化为:

LDA用于多分类 lda分类器原理_方差_09

LDA用于多分类 lda分类器原理_LDA用于多分类_10

   同样的将J(w)分子化为:

LDA用于多分类 lda分类器原理_二分类_11

   这样损失函数可以化成下面的形式:

 

LDA用于多分类 lda分类器原理_方差_12

   这样就可以用最喜欢的拉格朗日乘子法了,但是还有一个问题,如果分子、分母是都可以取任意值的,那就会使得有无穷解,我们将分母限制为长度为1(这是用拉格朗日乘子法一个很重要的技巧,在下面将说的PCA里面也会用到,如果忘记了,请复习一下高数),并作为拉格朗日乘子法的限制条件,带入得到:

LDA用于多分类 lda分类器原理_二分类_13

   这样的式子就是一个求特征值的问题了。

   对于N(N>2)分类的问题,我就直接写出下面的结论了:

LDA用于多分类 lda分类器原理_方差_14

   这同样是一个求特征值的问题,我们求出的第i大的特征向量,就是对应的Wi了。