LDA全称Linear Discriminant Analysis,意为线性判别分析,是一种高效准确的降维方法(只降一维,不精确才难)。简单来说,就是找到一个比原数据集低一维的分类面,让原数据集在此面上投影,投影的结果就是降一维后的新数据集。所以这个面的方向非常重要,它决定了降维后数据的特征保留程度。而我们的LDA求解,就是在研究如何能找到最理想的投影方向。
拿二维数据为例,我们假设有两个大类,分别用蓝色、绿色表示
红线即为投影面(超平面),可以想象到,当原数据集中的点向红线投影后,所剩下的信息就只有在红线上的相对位置了,所以我们可以用一维的数据来表示投影后的数据信息。
下面我们在理解如何降维的基础上再看投影面方向的影响
左右两个图同样是二维数据对一维的降维,不同的是,它们的投影超平面方向不相同。不同的投影面让它们降维后数据的离散程度不同。从直观上可以看出,右图要比左图的投影效果好,因为右图的红色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。
先对下文要出现的各种符号来一个定义全家福(没有这些铺垫鬼知道老师上课讲的是什么)
所有样本数据一共为两类,1类和2类。
w为待求投影面方向, 、为第1类第2类数据的均值,也可以说成原始中心:
类别i投影后的中心点为:
衡量类别i投影后,类别点之间的分散程度(方差)为:
投影面的定义为
求解W就是LDA的任务。我们想找的投影面其实就是让“同一类内的数据点更加聚集,不同类的数据点更加分散”的平面。所以由此我们得出
可以衡量类内、类外的数据离散程度,使分子最大,分母最小,此时的w就是我们想要的方向。换句话,我们要做的就是最大化
由于此时形式过于紧凑,我们无法直接求出w,所以我们定义,,为类间散度、类内散度,对做进一步变换:
变换后的变为:
这样,我们就能直观地看到w对函数的影响了
进一步,根据拉格朗日乘数:
再逆变换得:
至此,我们就可以求出w了
之后再选取最大特征值对应的特征向量作为投影方向即可
综上所述,LDA可以分为以下6个步骤
题目:
• 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求解过程
第一类中心: =
第二类中心: =
类间散度: =(-)=
类内散度: =(x-)+(x-)=
由、可以求解w=w
先计算:=
特征值为:=0 =3
对应特征向量:
=
=
因为求的最大值,所以取特征值=3
此时对应特征向量:=
所以w=即为投影方向
优点:
(1) 计算速度快
(2) 充分利用了先验知识
缺点:
(1) 当数据不是高斯分布时候,效果不好,PCA也是。
(2) 降维之后的维数最多为类别数-1。
(降维之后的维数最多为类别数-1。所以当数据维度很高,但是类别数少的时候,算法并不适用)
困死了,还差个总结,明天再更。本来想着很快写完,结果对LaTeX 数学公式的语法一窍不通,鼓捣了半天才写出来公式orz