判别分析

首先了解了一下判别分析。
判别分析(Discriminant Analysis)是多元统计中用于判别样本所属类型的一种方法。通过训练已知分类类别的样本集来建立判别准则,然后用于判别新的预测样本的类别。

常用的判别分析方法有:

1.最大似然法:其基本思想为,通过训练样本集求出各种组合情况下该样本被分为任何一类的概率,确定参数。对于新样本的类别判别,只需要计算它被分到每一类中去的条件概率(似然值),选择概率最大的那一类为其分类。

2.距离判别法:其基本思想是,由训练样本集得出每个分类的重心坐标,然后对待预测样本求出它们离各个类别重心的距离远近,从而归入离得最近的类。
kk
k
3.Bayes判别法:其基本思想和最大似然法类似,不过最大似然法确定的是参数(点估计),而贝叶斯会考虑到先验概率,且确定的是参数的分布(分布估计)。
4.Fisher判别法:也就是线性判别分析(LDA),其基本思路就是投影。将原来在R维空间的样本投影到维度较低的D维空间去,然后在D维空间中再进行分类。投影的原则是使得每一类的差异尽可能小,而不同类间投影的离差尽可能大。
hhh
当分类只有两种且总体服从多元正态分布条件下,距离判别、Bayes判别与Fisher判别是等价的。

线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis)是一种经典的线性学习方法,是一种监督学习方法。将原来在R维空间的样本投影到维度较低的D维空间去,然后在D维空间中再进行分类。投影的原则是使得每一类的差异尽可能小,而不同类间投影的离差尽可能大。如下图(二分类二维示意图):
【机器学习】降维方法(二)----线性判别分析(LDA)
图中紫色点为0类样本,黄色点为1类样本,蓝色点为0类样本投影点均值,红色为1类样本投影点均值。
给定训练数据集D={(x1,y1),(x2,y2),...,(xm,ym)}xi{xi(1),xi(2),...,xi(n)}yi{0,1}Xi表示属于第i类的样本的集合。

二分类问题:


0类样本均值μ0:
μ0=1k0xX0xik0为0类的样本数量。
wTμ0

1类样本均值μ1:
μ1=1k1xX1xik1为1类的样本数量。
wTμ1

0类样本协方差矩阵0:
0=xX0(xiμ0)(xiμ0)T
wT0w

1类样本协方差矩阵1:
1=xX1(xiμ1)(xiμ1)T
wT1w

类的协方差矩阵越小,表示这个类中的样本越聚集于这个类的均值点。我们希望这些同类样本的投影点尽可能的近,即wT0w+wT1w尽可能的小。
Sw=0+1
对于类的均值的投影点,我们用||wTμ0wTμ1||22表示它们之间的距离。我们希望这个距离尽可能的大。
Sb=(μ0μ1)(μ0μ1)T
同时考虑这两者,我们希望最大化J(w)
J(w)=||wTμ0wTμ1||22wT0w+wT1w=wT(μ0μ1)(μ0μ1)TwwT(0+1)w=wTSbwwTSww
为了解这个公式,需要观察这个式子,可以发现上下都有w的二次项,因此J(w)的解与w的长度无关(即||w||被上下抵消,不会影响J(w)的解,但是w的方向会影响到J(w))
对于J(w)分子分母都可以取任意值(比如若w是一个解,则对于任意常数α,αw也是解),这样会得到无穷个解,因此我们限制wTSww=1,则最大化J(w)转换为了这样一个问题:
    maxw wTSbw
    s.t. wTSww=1
等价于:
    minw wTSbw
    s.t. wTSww=1
对于这种问题,似曾相识,可以用拉格朗日乘子法将约束项和优化问题放在一个式子内,令L(w,λ)=wTSbw+λ(wTSww1)
求导令L(w,λ)w=2Sbw+2λSww=0
λSww=Sbw,由于Sbw的方向恒为μ0μ1,所以可以写为Sbw=β(μ0μ1)=λ(μ0μ1)
(μ0μ1)TwSbw=(μ0μ1)(μ0μ1)Tw
=β(μ0μ1)wα
αwSbw=λβSbw=λ(μ0μ1)
因此可得λSww=λ(μ0μ1)w=Sw1(μ0μ1),然后再对Sw进行奇异值分解,得出Sw1

多分类问题:

将LDA推广到多分类问题。假设存在N个类,第i个类的样本数为mi,所有样本数为m
全部样本均值μ
μ=1mi=1mxi
第i个类的样本均值μi
μi=1mixXix
全局散度矩阵St
St=Sb+Sw=i=1m(xiμ)(xiμ)T

第i个类的散度矩阵Swi
Swi=xXi(xμi)(xμi)T
类内散度矩阵Sw
Sw=i=1NSwi
()
类间散度矩阵Sb
Sb=StSw=i=1Nmi(μiμ)(μiμ)T
推导如下:
Sb=StSw
=i=1m(xiμ)(xiμ)Ti=1NxXi(xμi)(xμi)T
=i=1NxXi(xμ)(xμ)Ti=1NxXi(xμi)(xμi)T
=i=1NxXi[(xμ)(xμ)T(xμi)(xμi)T]
=i=1NxXi[(xμ)(xTμT)(xμi)(xTμiT)]
=i=1NxXi(xxTμxTxμT+μμTxxT+μixT+xμiTμiμiT)
=i=1NxXi[(μiμ)xT+(μiTμT)x+μμTμiμiT]
μi=1mixXixxXix=miμi
=i=1N[(μiμ)miμiT+(μiTμT)miμi+miμμTmiμiμiT]
=i=1N[mi(μiμiTμμiT+μiTμiμTμi+μμTμiμiT)]
=i=1N[mi(μμiT+μiTμiμTμi+μμT)]
=i=1N[mi(μiμ)(μiμ)T]

由上我们可以看出,任意求得StSwSb三者中任意两个都可以根据得到的两个求出第三个。

常见实现方法如下,优化目标为(找到W使得WTSbW的迹与WTSwW的迹之商最大):
   maxWtr(WTSbW)tr(WTSwW)=i=1kwiTSbwii=1kwiTSwwi
其中WRk×(N1)
WTSbWWTSwW
求解WW的闭式解就是Sw1Sb的前k个最大非零广义特征值所对应的特征向量组成的矩阵,kN1
Sw1Sbk

可以将W视为一个投影矩阵,则多分类LDA将样本投影到k维空间,且在投影过程中使用了类别信息(PCA在投影过程中并未考虑类别信息)

LDA优缺点:

LDA算法的主要优点有:
1.在降维过程中可以使用类别的先验知识经验;
2.LDA在样本分类信息依赖均值而不是方差的时候,降维效果较好。

LDA算法的主要缺点有:
1.LDA不适合对非高斯分布样本进行降维;
2.LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA;
3.LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好;
4.LDA可能过度拟合数据。

参考:
1.《机器学习》3.4线性判别分析—-周志华
2. http://blog.jobbole.com/88195/
3. http://www.cnblogs.com/pinard/p/6244265.html

相关文章:

  • 2021-08-15
  • 2021-04-27
  • 2021-08-05
  • 2021-12-23
  • 2021-08-29
  • 2021-12-21
  • 2021-04-04
猜你喜欢
  • 2021-04-12
  • 2021-06-22
  • 2022-12-23
  • 2021-12-18
  • 2021-07-25
  • 2022-01-11
  • 2021-10-07
相关资源
相似解决方案