机器学习 线性判别分析

一.概念

"线性判别分析"(Linear Discriminant Analysis;LDA)的基本思想是:给定训练样例集,设法将样例投影到维度较低的直线/平面/超平面上,使同类
样本的投影点尽可能接近而异类样本的投影点尽可能远离.为此可使同类样本的投影点的协方差尽可能小;而使异类样本的投影点的协方差尽可能大.在对
新样本进行分类时,同样将其投影到这条直线上,再根据投影点的位置来确定新样本的类别

在这里插入图片描述
在这里插入图片描述
二.用于二分类
1.概念:

LDA用于二分类问题时又称"费歇判别法"(Fisher Discriminance),因为其最早由费歇于1936年提出.LDA可从贝叶斯决策理论的角度来阐释,并可证
明,2类数据同先验/满足高斯分布/协方差相等时,LDA可达到最优分类

2.原理:

给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2)...(x_m,y_m)\} D={ (x1,y1),(x2,y2)...(xm,ym)},其中 x i x_i xi为第 i i i个样本的坐标, y i y_i yi为第 i i i个样本的类别.设 L = { 0 , 1 } L=\{0,1\} L={ 0,1}为所有类别构成的集合; X i , μ i , Σ i , N i X_i,μ_i,Σ_i,N_i Xi,μi,Σi,Ni为第 i i i类样本的集合,均值向量,协方差矩阵,个数.则 μ i μ_i μi在直线 ω ω ω上的投影为 ω T μ i ω^Tμ_i ωTμi;第 i i i类样本点在 ω ω ω上的投影的协方差为 ω T Σ i ω ω^TΣ_iω ωTΣiω.为使同类样本的投影点的协方差尽可能小,应满足 min ⁡ ω T Σ 0 ω + ω T Σ 1 ω \min{ω^TΣ_0ω+ω^TΣ_1ω} minωTΣ0ω+ωTΣ1ω而为使异类样本的投影点的协方差尽可能大,应满足 max ⁡ ∣ ∣   ω T μ 0 −   ω T μ 1 ∣ ∣ 2 \max{||\,ω^Tμ_0-\,ω^Tμ_1||^2} maxωTμ0ωTμ12综合考虑二者,应满足 max ⁡ J = ∣ ∣   ω T μ 0 −   ω T μ 1 ∣ ∣ 2 ω T Σ 0 ω + ω T Σ 1 ω         = ω T ( μ i − μ j ) ( μ i − μ j ) T ω ω T ( Σ 0 + Σ 1 ) ω ( 1 ) \max{J=\frac{||\,ω^Tμ_0-\,ω^Tμ_1||^2}{ω^TΣ_0ω+ω^TΣ_1ω}}\qquad\qquad\:\:\:\\\:\:\:\qquad\qquad=\frac{ω^T(μ_i-μ_j)(μ_i-μ_j)^Tω}{ω^T(Σ_0+Σ_1)ω}\qquad(1) maxJ=ωTΣ0ω+ωTΣ1ωωTμ0ωTμ12=ωT(Σ0+Σ1)ωωT(μiμj)(μiμj)Tω(1)定义类内散度矩阵(Within-Class Scatter Matrix) S ω = Σ 0 + Σ 1 S_ω=Σ_0+Σ_1 Sω=Σ0+Σ1类间散度矩阵(Between-Class Scatter Matrix) S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(μ_0-μ_1)(μ_0-μ_1)^T Sb=(μ0μ1)(μ0μ1)T则可将 ( 1 ) (1) (1)式重写为 max ⁡ J = ω T S b ω ω T S ω ω \max{J=\frac{ω^TS_bω}{ω^TS_ωω}} maxJ=ωTSωωωTSbω J J J S ω S_ω Sω S b S_b Sb广义瑞利商(Generalized Rayleigh quotient).注意到 J J J的分子分母都是关于 ω ω ω的二次项,因此解与 ω ω ω的长度无关.不失一般性,令 ω T S ω ω = 1 ω^TS_ωω=1 ωTSωω=1,则问题转换为 min ⁡ ω   − ω T S b ω   s . t . ω T S ω ω = 1 \underset{ω}{\min}\:-ω^TS_bω\\\:s.t.\quadω^TS_ωω=1 ωminωTSbωs.t.ωTSωω=1由拉格朗日乘数法可知,上式等价于 S b ω = λ S ω ω ( 2 ) S_bω=λS_ωω\qquad(2) Sbω=λSωω(2)其中 λ λ λ是拉格朗日乘子.注意到 S b ω S_bω Sbω的方向恒为 μ 0 − μ 1 μ_0-μ_1 μ0μ1,不妨令 S b ω = λ ( μ 0 − μ 1 ) S_bω=λ(μ_0-μ_1) Sbω=λ(μ0μ1)带入 ( 2 ) (2) (2)式即得 ω = S ω − 1 ( μ 0 − μ 1 ) ω=S_ω^{-1}(μ_0-μ_1) ω=Sω1(μ0μ1)考虑到数值解的稳定性,在实践中通常是对 S ω S_ω Sω进行奇异值分解,得到 S ω = U Σ V T S_ω=UΣV^T Sω=UΣVT,即 S ω − 1 = V Σ − 1 U T S_ω^{-1}=VΣ^{-1}U^T Sω1=VΣ1UT

3.实现:

三.用于多分类
1.原理:

给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2)...(x_m,y_m)\} D={ (x1,y1),(x2,y2)...(xm,ym)},其中 x i x_i xi为第 i i i个样本的坐标, y i y_i yi为第 i i i个样本的类别.设 N N N为类别总数; μ μ μ为全部样本的均值向量; X i , μ i , Σ i , m i X_i,μ_i,Σ_i,m_i Xi,μi,Σi,mi为第 i i i类样本的集合,均值向量,协方差矩阵,数量.则 μ i μ_i μi在直线 ω ω ω上的投影为 ω T μ i ω^Tμ_i ωTμi;第 i i i类样本点在 ω ω ω上的投影的协方差为 ω T Σ i ω ω^TΣ_iω ωTΣiω.定义全局散度矩阵 S t = S b + S ω = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T S_t=S_b+S_ω\\=\displaystyle\sum_{i=1}^m(x_i-μ)(x_i-μ)^T St=Sb+Sω=i=1m(xiμ)(xiμ)T将类内散度矩阵 S ω S_ω Sω重定义为所有类别的散度矩阵的和 S ω = ∑ i = 1 N S ω i S_ω=\displaystyle\sum_{i=1}^NS_{ω_i} Sω=i=1NSωi其中 S ω i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S_{ω_i}=\displaystyle\sum_{x∈X_i}(x-μ_i)(x-μ_i)^T Sωi=xXi(xμi)(xμi)T由上述各式可得 S b = S t − S ω = ∑ i = 1 N m i ( μ 1 − μ ) ( μ 1 − μ ) T S_b=S_t-S_ω\\=\displaystyle\sum_{i=1}^Nm_i(μ_1-μ)(μ_1-μ)^T Sb=StSω=i=1Nmi(μ1μ)(μ1μ)T多分类LDA有多种实现方法:使用 S t , S b , S ω S_t,S_b,S_ω St,Sb,Sω中的任意2者均可.常见的1种实现是要求 max ⁡ W t r ( W T S b W ) t r ( W T S ω W ) ( 3 ) \underset{W}{\max}\frac{tr(W^TS_bW)}{tr(W^TS_ωW)}\qquad(3) Wmaxtr(WTSωW)tr(WTSbW)(3)其中 W ∈ R d × ( N − 1 ) W∈R^{d×(N-1)} WRd×(N1)和二分类时一样, ( 3 ) (3) (3)式可转换为 S b W = λ S ω W S_bW=λS_ωW SbW=λSωW W W W可被视为1个投影矩阵,用于将样本投影到 N − 1 N-1 N1维超平面上

2.实现:

猜你喜欢

转载自blog.csdn.net/weixin_46131409/article/details/114102493
今日推荐