首先我们得搞清楚什么是Fisher算法選取任何一本什么是模式识别别与智能计算的书都有这方面的讲解。首先得知道Fisher线性判别函数在处理数据的时候,我们经常遇到高维数據这个时候往往就会遇到“维数灾难”的问题,即在低维空间可行那么在高维空间往往却不可行,那么此时我们就可以降数据降维將高维空间降到低维空间。
可以考虑把维空间的样本投影到一条直线上形成一维空间,即把数据压缩到一维这在数学中总是容易办到嘚。然而即使样本在维空间里形成若干紧凑的互相分的开的集群,若把它们投影到一条任意的直线上也可能使几类样本混在一起而变嘚无法识别。但在一般的情况下总可以找到某个方向,使在这个方向的直线上样本的投影能分开最好。
下面以2分类为例简单总结一下Fisher算法的步骤:
(1)计算各类样本的均值向量miNi是类ωi的样本个数
(2)计算样本类内离散度矩阵 Si 和总类内离散度矩阵 Sw 。
(3)计算样本类间离散度矩阵 Sb
使得 JF(W) 取的最大值的 w? 为: (5)将训练集内所有样本进行投影。 y=(w?)TX (6)计算在投影空间上的分割阈值 y0 阈值的选取可以有不同的方案,比较常用的一种为
其中 mi~ 为在一维空间各样本的均值:
(7)对于给定的 X ,计算它在 w? 上的投影点 y
用Fisher函数解决多分类问题时,首先實现两类Fisher分类然后根据返回的类别与新的类别再做两类Fisher分类,又能够得到比较接近的类别以此类推,直至所有的类别最后得出未知樣本的类别。
下图显示了fisher算法降维之后数据线性可分:
下面以一道例题来练习Fisher二分类:
例:为了解某河段AsPb污染状况,设在甲乙两地监測,采样测的这两种元素在水中和底泥中的浓度(如下表)依据这些数据判别未知样本是从哪个区域采得的。
假设我们把甲地类标签设為0乙地设为1,实验结可以得出第一个未知样本来之乙地第二个来之甲地。
以上我们对Fisher判别分析有了一个初步的了解Fisher判别分析在什么昰模式识别别,机器学习中应用的非常广泛进一步的了解可以阅读相关书籍与资料。