LDA总结与实例分析


最近AI导论老师介绍了线性判别分析,但是由于板书全英文加上老师讲课过快,课上我没能完全理解LDA的原理。课下做了很多功课,才初步对LDA有了一个认识。下面我按照老师的板书流程并添加注释来讲述LDA求解全过程。

LDA简介

LDA全称Linear Discriminant Analysis,意为线性判别分析,是一种高效准确的降维方法(只降一维,不精确才难)。简单来说,就是找到一个比原数据集低一维的分类面,让原数据集在此面上投影,投影的结果就是降一维后的新数据集。所以这个面的方向非常重要,它决定了降维后数据的特征保留程度。而我们的LDA求解,就是在研究如何能找到最理想的投影方向。

拿二维数据为例,我们假设有两个大类,分别用蓝色、绿色表示
在这里插入图片描述
红线即为投影面(超平面),可以想象到,当原数据集中的点向红线投影后,所剩下的信息就只有在红线上的相对位置了,所以我们可以用一维的数据来表示投影后的数据信息。

下面我们在理解如何降维的基础上再看投影面方向的影响
在这里插入图片描述
左右两个图同样是二维数据对一维的降维,不同的是,它们的投影超平面方向不相同。不同的投影面让它们降维后数据的离散程度不同。从直观上可以看出,右图要比左图的投影效果好,因为右图的红色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。

LDA计算过程

符号铺垫

先对下文要出现的各种符号来一个定义全家福(没有这些铺垫鬼知道老师上课讲的是什么)

所有样本数据一共为两类,1类和2类。

w为待求投影面方向, m1m_1m2m_2为第1类第2类数据的均值,也可以说成原始中心:

mi=1NixXix    (i=0,1)m_i = \frac{1}{N_i}\sum\limits_{x \in X_i}x\;\;(i=0,1)

类别i投影后的中心点为:
在这里插入图片描述
衡量类别i投影后,类别点之间的分散程度(方差)为:
在这里插入图片描述

求解过程

投影面的定义为
在这里插入图片描述
求解W就是LDA的任务。我们想找的投影面其实就是让“同一类内的数据点更加聚集,不同类的数据点更加分散”的平面。所以由此我们得出
在这里插入图片描述
J(w)J(w)可以衡量类内、类外的数据离散程度,使J(w)J(w)分子最大,分母最小,此时的w就是我们想要的方向。换句话,我们要做的就是最大化J(w)J(w)

由于J(w)J(w)此时形式过于紧凑,我们无法直接求出w,所以我们定义SbS_bSwS_w,为类间散度、类内散度,对J(w)J(w)做进一步变换:
在这里插入图片描述
变换后的J(w)J(w)变为:
在这里插入图片描述
这样,我们就能直观地看到w对函数的影响了
进一步,根据拉格朗日乘数:
在这里插入图片描述
再逆变换得:
在这里插入图片描述
至此,我们就可以求出w了
之后再选取最大特征值对应的特征向量作为投影方向即可
综上所述,LDA可以分为以下6个步骤
在这里插入图片描述

LDA实例分析

题目:

• Compute the projection direction using LDA from two sets of points (on the paper by hand)
C1=[(1, 0), (1, 1), (0, 1)]
C2=[(1, 2), (2, 1), (2, 2)]

这是一个二维数据二分类求解问题,数据量不大,我们以这个例子来应用一遍上述的LDA求解过程

第一类中心: m1m_1=(2/32/3)\begin{pmatrix} 2/3 \\2/3\end{pmatrix}

第二类中心: m1m_1=(5/35/3)\begin{pmatrix} 5/3 \\ 5/3 \\ \end{pmatrix}
类间散度: SbS_b=(m1m_1-m2m_2)((m1m_1-m2m_2)T)^T=(1111)\begin{pmatrix} 1&1 \\ 1&1 \\ \end{pmatrix}
类内散度: SwS_w=\sum(x-m1m_1)(x(x-m1m_1)T)^T+\sum(x-m2m_2)(x(x-m2m_2)T)^T=(4/32/32/34/3)\begin{pmatrix} 4/3&-2/3 \\ -2/3&4/3 \\ \end{pmatrix}

SbS_bSwS_w可以求解Sw1S_w^{-1}SbS_bw=λ\lambdaw

先计算Sw1S_w^{-1}SbS_bSw1S_w^{-1}SbS_b=(1.51.51.51.5)\begin{pmatrix} 1.5&1.5 \\ 1.5&1.5 \\ \end{pmatrix}

Sw1S_w^{-1}SbS_b特征值为:λ1\lambda_1=0 λ2\lambda_2=3
对应特征向量:
η1\eta_1=(11)\begin{pmatrix} 1 \\ -1 \\ \end{pmatrix}
η2\eta_2=(11)\begin{pmatrix} 1 \\ 1 \\ \end{pmatrix}

因为求J(w)J(w)的最大值,所以取特征值λ2\lambda_2=3

此时对应特征向量:η2\eta_2=(11)\begin{pmatrix} 1 \\ 1 \\ \end{pmatrix}

所以w=(11)\begin{pmatrix} 1 \\ 1 \\ \end{pmatrix}即为投影方向

LDA优缺点

优点:

(1) 计算速度快

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

缺点:

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

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

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








困死了,还差个总结,明天再更。本来想着很快写完,结果对LaTeX 数学公式的语法一窍不通,鼓捣了半天才写出来公式orz