线性判别分析 LDA

线性判别分析(LDA)是一种统计方法,用于高维数据的降维,同时考虑类别标签,以找到与类别最相关的特征。LDA通过最大化类别间的散列值和最小化类别内的散列值来确定最佳投影方向。在二类问题中,LDA找到一条直线,使得类别投影后分离最佳。在多类问题中,LDA找到多个基向量,通过最大化类间散列矩阵的行列式来确定。LDA适用于高斯分布的数据,但在非高斯分布或依赖方差而非均值的样本中可能表现不佳。此外,LDA最多可生成C-1维子空间,适合预测新样本的类别。
摘要由CSDN通过智能技术生成

Linear Discriminant Analysis 线性判别分析

本想自己总结一片LDA的文章,但是这位大神写的好了,由浅入深、图文并茂,是绝好的学习资料!厚脸皮摘抄过来!
另外值得参考的资料:
Introduction to LDA
https://en.wikipedia.org/wiki/Linear_discriminant_analysis
http://blog.csdn.net/warmyellow/article/details/5454943

原文:http://www.cnblogs.com/jerrylead/archive/2011/04/21/2024384.html
以下是原文:
1.问题
之前我们讨论的PCA、ICA也好,对样本数据来言,可以是没有类别标签y的。回想我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA来降维,但PCA没有将类别标签考虑进去,属于无监督的。

比如回到上次提出的文档中含有“learn”和“study”的问题,使用PCA后,也许可以将这两个特征合并为一个,降了维度。但假设我们的类别标签y是判断这篇文章的topic是不是有关学习方面的。那么这两个特征对y几乎没什么影响,完全可以去除。

再举一个例子,假设我们对一张100*100像素的图片做人脸识别,每个像素是一个特征,那么会有10000个特征,而对应的类别标签y仅仅是0/1值,1代表是人脸。这么多特征不仅训练复杂,而且不必要特征对结果会带来不可预知的影响,但我们想得到降维后的一些最佳特征(与y关系最密切的),怎么办呢?

2.线性判别分析(二类情况)
回顾我们之前的logistic回归方法,给定m个n维特征的训练样例1(i从1到m),每个x^(i)^对应一个类标签y^(i)^。我们就是要学习出参数θ,使得2(g是sigmoid函数)。

现在只考虑二值分类情况,也就是y=1或者y=0。

为了方便表示,我们先换符号重新定义问题,给定特征为d维的N个样例,3,其中有4个样例属于类别5,另外N2个样例属于类别W2

现在我们觉得原始特征数太多,想将d维特征降到只有一维,而又要保证类别能够“清晰”地反映在低维数据上,也就是这一维就能决定每个样例的类别。

我们将这个最佳的向量称为w(d维),那么样例x(d维)到w上的投影可以用下式来计算

SHI1

这里得到的y值不是0/1值,而是x投影到直线上的点到原点的距离。

当x是二维的,我们就是要找一条直线(方向为w)来做投影,然后寻找最能使样本点分离的直线。如下图:
img1

从直观上来看,右图比较好,可以很好地将不同类别的样本点分离。

接下来我们从定量的角度来找到这个最佳的w。

首先我们寻找每类样例的均值(中心点),这里i只有两个
img2
由于x到w投影后的样本点均值为
img3
由此可知,投影后的的均值也就是样本中心点的投影。

什么是最佳的直线(w)呢?我们首先发现,能够使投影后的两类样本中心点尽量分离的直线是好的直线,定量表示就是:
img4
J(w)越大越好。
但是只考虑J(w)行不行呢?不行,看下图
img6
样本点均匀分布在椭圆里,投影到横轴x1上时能够获得更大的中心点间距J(w),但是由于有重叠,x1不能分离样本点。投影到纵轴x2上,虽然J(w)较小,但是能够分离样本点。因此我们还需要考虑样本点之间的方差,方差越大,样本点越难以分离。

我们使用另外一个度量值,称作散列值(scatter),对投影后的类求散列值,如下
img7
从公式中可以看出,只是少除以样本数量的方差值,散列值的几何意义是样本点的密集程度,值越大,越分散,反之,越集中。

而我们想要的投影后的样本点的样子是:不同类别的样本点越分开越好,同类的越聚集越好,也就是均值差越大越好,散列值越小越好。正好,我们可以使用J(w)和S来度量,最终的度量公式是
img8
接下来的事就比较明显了,我们只需寻找使J(w)最大的w即可。

先把散列值公式展开
img9
我们定义上式中中间那部分
img10
这个公式的样子不就是少除以样例数的协方差矩阵么,称为散列矩阵(scatter matrices)

我们继续定义
img11
S_w_称为Within-class scatter matrix.
那么回到上面img12的公式,使用img13替换中间部分,得
img14
img15
然后,我们展开分子
img16
img18称为Between-class scatter,是两个向量的外积,虽然是个矩阵,但秩为1。
那么J(w)最终可以表示为
img19
在我们求导之前,需要对分母进行归一化,因为不做归一的话,w扩大任何倍,都成立,我们就无法确定w。因此我们打算令img20,那么加入拉格朗日乘子后,求导
img21
其中用到了矩阵微积分,求导时可以简单地把img22当做img23看待。
如果S_w_可逆,那么将求导后的结果两边都乘以img24,得
img25
这个可喜的结果就是w就是矩阵img16的特征向量了。
这个公式称为Fisher linear discrimination。

等等,让我们再观察一下,发现前面img28的公式
img
那么
img30
代入最后的特征值公式得
x
由于对w扩大缩小任何倍不影响结果,因此可以约去两边的未知常数lalaw,得到
img33
至此,我们只需要求出原始样本的均值和方差就可以求出最佳的方向w,这就是Fisher于1936年提出的线性判别分析。

看上面二维样本的投影结果图:
jimg35

3.线性判别分析(多类情况)
前面是针对只有两个类的情况,假设类别变成多个了,那么要怎么改变,才能保证投影后类别能够分离呢?

我们之前讨论的是如何将d维降到一维,现在类别多了,一维可能已经不能满足要求。假设我们有C个类别,需要K维向量(或者叫做基向量)来做投影。

将这K维向量表示为img37.
我们将样本点在这K维向量投影后结果表示为imgs,有以下公式成立
31
32
为了像上节一样度量J(w),我们打算仍然从类间散列度和类内散列度来考虑。

当样本是二维时,我们从几何意义上考虑:
img40
其中35r与上节的意义一样,ss是类别1里的样本点相对于该类中心点u1的散列程度。sb1变成类别1中心点相对于样本中心点uu的协方差矩阵,即类1相对于uud的散列程度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值