1
模式识别与智能计算的MATLAB实现
1.4.2.2 2.2.2 Fisher线性判别函数
2.2.2 Fisher线性判别函数

应用统计方法解决模式识别问题时,一再碰到的问题之一是维数问题。在低维空间里解析上或计算上可行的方法,在高维空间里往往行不通,因此降低维数有时就成为处理实际问题的关键。

可以考虑把d维空间的样本投影到一直线上,形成一维空间,即把维数压缩到一维,这在数学上总是容易办到的。然而,即使样本在d维空间里形成若干紧凑的互相分得开的集群,若把它们投影到一条任意的直线上,也可能使几类样本混在一起而变得无法识别。但在一般情况下,总可以找到某个方向,使在这个方向的直线上,样本的投影能分开最好。问题是如何根据实际情况找到这条最好的、最易于分类的投影线。这就是Fisher法所要解决的基本问题。

对于两类问题的Fisher法的具体方法如下:

①计算各类样本均值向量mi,Ni是ωi类的样本个数。

alt

②计算样本类内离散度矩阵Si和总类内离散度矩阵Sw

alt

Sw=S1+S2

③计算样本类间离散度矩阵Sb

Sb=(m1-m2)(m1-m2T

④求向量w*。为此定义Fisher准则函数

alt

使得JF(w)取得最大值的w*

alt

⑤将训练集内所有样本进行投影。

y=(w*TX

⑥计算在投影空间上的分割阈值y0。阈值的选取可以有不同的方案,较常用的一种为

alt

另一种为

alt

其中,alt为在一维空间中各类样本的均值:alt

样本类内离散度alt和总类内离散度alt

alt

⑦对于给定的X,计算它在w*上的投影点y。

y=(w*TX

⑧根据决策规则分类,有

alt

用Fisher函数解决多类问题时,首先实现两类Fisher分类,然后根据返回的类别与新的类别再做两类Fisher分类,又能够得到比较接近的类别,以此类推,直至所有的类别,最后得出未知样本的类别。