【机器学习】降维方法(二)----线性判别分析(LDA)

判别分析

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

常用的判别分析方法有:

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

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

线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis)是一种经典的线性学习方法,是一种监督学习方法。将原来在R维空间的样本投影到维度较低的D维空间去,然后在D维空间中再进行分类。投影的原则是使得每一类的差异尽可能小,而不同类间投影的离差尽可能大。如下图(二分类二维示意图):
这里写图片描述
图中紫色点为0类样本,黄色点为1类样本,蓝色点为0类样本投影点均值,红色为1类样本投影点均值。
给定训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } x i { x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) } y i { 0 , 1 } X i 表示属于第 i 类的样本的集合。

二分类问题:


0类样本均值 μ 0 :
μ 0 = 1 k 0 x X 0 x i k 0 为0类的样本数量。
w T μ 0

1类样本均值 μ 1 :
μ 1 = 1 k 1 x X 1 x i k 1 为1类的样本数量。
w T μ 1

0类样本协方差矩阵 0 :
0 = x X 0 ( x i μ 0 ) ( x i μ 0 ) T
w T 0 w

1类样本协方差矩阵 1 :
1 = x X 1 ( x i μ 1 ) ( x i μ 1 ) T
w T 1 w

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

多分类问题:

将LDA推广到多分类问题。假设存在N个类,第 i 个类的样本数为 m i ,所有样本数为 m
全部样本均值 μ
μ = 1 m i = 1 m x i
第i个类的样本均值 μ i
μ i = 1 m i x X i x
全局散度矩阵 S t
S t = S b + S w = i = 1 m ( x i μ ) ( x i μ ) T

第i个类的散度矩阵 S w i
S w i = x X i ( x μ i ) ( x μ i ) T
类内散度矩阵 S w
S w = i = 1 N S w i
( )
类间散度矩阵 S b
S b = S t S w = i = 1 N m i ( μ i μ ) ( μ i μ ) T
推导如下:
S b = S t S w
= i = 1 m ( x i μ ) ( x i μ ) T i = 1 N x X i ( x μ i ) ( x μ i ) T
= i = 1 N x X i ( x μ ) ( x μ ) T i = 1 N x X i ( x μ i ) ( x μ i ) T
= i = 1 N x X i [ ( x μ ) ( x μ ) T ( x μ i ) ( x μ i ) T ]
= i = 1 N x X i [ ( x μ ) ( x T μ T ) ( x μ i ) ( x T μ i T ) ]
= i = 1 N x X i ( x x T μ x T x μ T + μ μ T x x T + μ i x T + x μ i T μ i μ i T )
= i = 1 N x X i [ ( μ i μ ) x T + ( μ i T μ T ) x + μ μ T μ i μ i T ]
μ i = 1 m i x X i x x X i x = m i μ i
= i = 1 N [ ( μ i μ ) m i μ i T + ( μ i T μ T ) m i μ i + m i μ μ T m i μ i μ i T ]
= i = 1 N [ m i ( μ i μ i T μ μ i T + μ i T μ i μ T μ i + μ μ T μ i μ i T ) ]
= i = 1 N [ m i ( μ μ i T + μ i T μ i μ T μ i + μ μ T ) ]
= i = 1 N [ m i ( μ i μ ) ( μ i μ ) T ]

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

常见实现方法如下,优化目标为(找到 W 使得 W T S b W 的迹与 W T S w W 的迹之商最大):
    max W t r ( W T S b W ) t r ( W T S w W ) = i = 1 k w i T S b w i i = 1 k w i T S w w i
其中 W R k × ( N 1 )
W T S b W W T S w W
求解 W W 的闭式解就是 S w 1 S b 的前 k 个最大非零广义特征值所对应的特征向量组成的矩阵, k N 1
S w 1 S b k

可以将 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

猜你喜欢

转载自blog.csdn.net/u013597931/article/details/80037976