Fisher线性判别
2017-06-13 22:31
260 查看
我们知道,基于样本直接设计分类器需要三个基本要素:判别函数类型、分类器设计准则、寻优算法。这里我们讨论的线性判别函数类型为:g(x)=wTx+w0。采用不同的准则和不同的寻优算法就会得到不同的线性分类器。
一、线性判别函数
刚才我们说了,线性分类器的判别函数型是线性判别函数:
g(x)=wTx+w0
其中,w0是一个常数,x是d维的特征向量,w为权值向量,分别为:
x=⎡⎣⎢⎢⎢x1x2⋯xd⎤⎦⎥⎥⎥w=⎡⎣⎢⎢⎢w1w2⋯wd⎤⎦⎥⎥⎥
方程g(x)=0就是一个决策面,当g(x)是线性函数时,这个决策面就是一个超平面。
对于决策面上的任意两点xi,xj都有:
wTx1+w0=wTx2+w0即wT(x1−x2)=0
二、Fisher线性判别分析
两类的线性判别问题可以看作是把所有样本都投影到一个方向,然后再这个一维空间中确定一个分类的阈值,过这个阈值点且与投影方向垂直的超平面就是两类的分类面。
像上图所示的两种投影方案,左边的投影方向可以将两种样本区分开来,而右边的投影方向不能区分开来,所以左边的投影方向更好。
Fisher线性判别的思想是:选择投影方向,使得投影后两类相隔尽可能远,而同一类内的样本尽可能聚集。
现在我们来定量的分析Fisher线性判别问题。为了简单考虑,我们只讨论二分类问题。
训练样本集是χ={x1,⋯,xN},其中每个样本xi是一个d维的向量,其中属于w1类的样本是χ1={x11,⋯,x1N1},属于w2类的样本是χ2={x21,⋯,x2N2},我们的目的是寻找一个投影方向w(也是一个d维向量),投影后的样本为yi=wtxi
定义:
原样本空间中:
1)类均值向量为:
mi=1Ni∑xj∈χixji=1,2
2)各类的类内离散度矩阵为:
Si=∑xj∈χi(xj−mi)(xj−mi)Ti=1,2
3)总类内离散度矩阵为:
SW=S1+S2
4)类间离散度矩阵为:
Sb=(m1−m2)(m1−m2)T
投影到一维空间后,
1)两类的均值分别为:
m^i=1Ni∑yj∈Yiyj=1Ni∑xj∈χiwTxj=wTmi
2)类内离散度值(不是矩阵):
S2i^=∑yj∈Yi(yj−mi^)2i=1,2
3)总类内离散度为:
Sw^=S21^+S22^
4)类间离散度即两类均值差的平方:
Sb^=(m1^−m2^)2
根据我们的目标:投影后两类相隔尽可能远,而同一类内的样本尽可能聚集,可以表示成:
maxJF(w)=Sb^Sw^=(m1^−m2^)2S21^+S22^(1)
公式(1)就称为:Fisher准则函数。
又:
Sb^=(m1^−m2^)2=(wTm1−wTm2)2=wT(m1−m2)(m1−m2)Tw=wTSbw
SW^=S21^+S22^=∑xj∈χ1(wTxj−wTm1)2+∑xj∈χ2(wTxj−wTm2)2=∑xj∈χ1wT(xj−m1)(xj−m1)Tw+∑xj∈χ2wT(xj−m2)(xj−m2)Tw=wTS1w+wTS2w=wTSWw
因此Fisher判别准则可写成:
maxwJF(w)=wTSbwwTSWw(2)
为了简化计算,我们可以将(2)的分母设为一个非零常数,因此该准则又可写作:
maxwTSbws.t.wTSWw=c≠0
等式约束下的极值问题可以通过引入拉格朗日乘子转化成拉格朗日函数的无约束极值问题:
L(w,λ)=wTSbw−λ(wTSWw−c)
对L(w,λ)求导计算极值,极值解应满足:
Sbw∗−λSWw∗=0(3)
当S_W是非奇异的时候,可以得到:
S−1WSbw∗=λw∗
将Sb代入得:
λw∗=S−1W(m1−m2)(m1−m2)Tw∗(4)
在等式(4)中,λ是标量,(m1−m2)Tw∗也是标量,而标量是不影响w∗的方向的,因此可以取:
w∗=S−1W(m1−m2)
这就是Fisher判别准则下的最优投影方向。
接下来我们需要计算w0,采取的决策规则是:
若g(x)=wTx+w0{>0则x∈w1<0则x∈w2
当样本是正态分布且两类协方差矩阵相同时,
w0=−12(m1+m2)TS−1W(m1−m2)−lnP(w2)P(w1)
当样本不是正态分布时,这种投影方向和阈值并不能保证是最优的,但是通常仍然可以取得较好的分类结果。
如果不考虑先验概率的不同,则可以采用阈值:
w0=−12(m1^+m2^)
或:w0=−m^
其中m^是所有样本在投影后的均值。
一、线性判别函数
刚才我们说了,线性分类器的判别函数型是线性判别函数:
g(x)=wTx+w0
其中,w0是一个常数,x是d维的特征向量,w为权值向量,分别为:
x=⎡⎣⎢⎢⎢x1x2⋯xd⎤⎦⎥⎥⎥w=⎡⎣⎢⎢⎢w1w2⋯wd⎤⎦⎥⎥⎥
方程g(x)=0就是一个决策面,当g(x)是线性函数时,这个决策面就是一个超平面。
对于决策面上的任意两点xi,xj都有:
wTx1+w0=wTx2+w0即wT(x1−x2)=0
二、Fisher线性判别分析
两类的线性判别问题可以看作是把所有样本都投影到一个方向,然后再这个一维空间中确定一个分类的阈值,过这个阈值点且与投影方向垂直的超平面就是两类的分类面。
像上图所示的两种投影方案,左边的投影方向可以将两种样本区分开来,而右边的投影方向不能区分开来,所以左边的投影方向更好。
Fisher线性判别的思想是:选择投影方向,使得投影后两类相隔尽可能远,而同一类内的样本尽可能聚集。
现在我们来定量的分析Fisher线性判别问题。为了简单考虑,我们只讨论二分类问题。
训练样本集是χ={x1,⋯,xN},其中每个样本xi是一个d维的向量,其中属于w1类的样本是χ1={x11,⋯,x1N1},属于w2类的样本是χ2={x21,⋯,x2N2},我们的目的是寻找一个投影方向w(也是一个d维向量),投影后的样本为yi=wtxi
定义:
原样本空间中:
1)类均值向量为:
mi=1Ni∑xj∈χixji=1,2
2)各类的类内离散度矩阵为:
Si=∑xj∈χi(xj−mi)(xj−mi)Ti=1,2
3)总类内离散度矩阵为:
SW=S1+S2
4)类间离散度矩阵为:
Sb=(m1−m2)(m1−m2)T
投影到一维空间后,
1)两类的均值分别为:
m^i=1Ni∑yj∈Yiyj=1Ni∑xj∈χiwTxj=wTmi
2)类内离散度值(不是矩阵):
S2i^=∑yj∈Yi(yj−mi^)2i=1,2
3)总类内离散度为:
Sw^=S21^+S22^
4)类间离散度即两类均值差的平方:
Sb^=(m1^−m2^)2
根据我们的目标:投影后两类相隔尽可能远,而同一类内的样本尽可能聚集,可以表示成:
maxJF(w)=Sb^Sw^=(m1^−m2^)2S21^+S22^(1)
公式(1)就称为:Fisher准则函数。
又:
Sb^=(m1^−m2^)2=(wTm1−wTm2)2=wT(m1−m2)(m1−m2)Tw=wTSbw
SW^=S21^+S22^=∑xj∈χ1(wTxj−wTm1)2+∑xj∈χ2(wTxj−wTm2)2=∑xj∈χ1wT(xj−m1)(xj−m1)Tw+∑xj∈χ2wT(xj−m2)(xj−m2)Tw=wTS1w+wTS2w=wTSWw
因此Fisher判别准则可写成:
maxwJF(w)=wTSbwwTSWw(2)
为了简化计算,我们可以将(2)的分母设为一个非零常数,因此该准则又可写作:
maxwTSbws.t.wTSWw=c≠0
等式约束下的极值问题可以通过引入拉格朗日乘子转化成拉格朗日函数的无约束极值问题:
L(w,λ)=wTSbw−λ(wTSWw−c)
对L(w,λ)求导计算极值,极值解应满足:
Sbw∗−λSWw∗=0(3)
当S_W是非奇异的时候,可以得到:
S−1WSbw∗=λw∗
将Sb代入得:
λw∗=S−1W(m1−m2)(m1−m2)Tw∗(4)
在等式(4)中,λ是标量,(m1−m2)Tw∗也是标量,而标量是不影响w∗的方向的,因此可以取:
w∗=S−1W(m1−m2)
这就是Fisher判别准则下的最优投影方向。
接下来我们需要计算w0,采取的决策规则是:
若g(x)=wTx+w0{>0则x∈w1<0则x∈w2
当样本是正态分布且两类协方差矩阵相同时,
w0=−12(m1+m2)TS−1W(m1−m2)−lnP(w2)P(w1)
当样本不是正态分布时,这种投影方向和阈值并不能保证是最优的,但是通常仍然可以取得较好的分类结果。
如果不考虑先验概率的不同,则可以采用阈值:
w0=−12(m1^+m2^)
或:w0=−m^
其中m^是所有样本在投影后的均值。
相关文章推荐
- PRML读书会第四章 Linear Models for Classification(贝叶斯marginalization、Fisher线性判别、感知机、概率生成和判别模型、逻辑回归)
- Fisher线性判别
- fisher linear discriminant analysis(fisher线性判别分析)
- fisher线性判别
- 模式识别五--PCA主分量分析与Fisher线性判别
- 机器学习总结(lecture 5)算法:Fisher线性判别分析LDA
- Fisher线性判别
- 基于Fisher线性判别分析的手写数字识别
- 线性分类器:Fisher线性判别
- Fisher线性判别(RPML读书笔记)
- Fisher线性判别
- DCV(Discriminative Common Vectors)based on LDA(fisher线性判别)
- fisher线性判别分析
- Fisher线性判别与感知器算法Matlab实现
- Fisher线性判别(RPML读书笔记)
- Fisher线性判别
- Fisher线性判别
- Fisher线性判别与感知器算法Matlab实现
- 基于fisher线性判别法的分类器设计
- Fisher线性判别(*)