MATLAB验证Fisher线性判别
一、概念
Fisher判别法的基本思想是寻找一个最好的投影方向,在这个方向的直线上,d维样本的投影能分开的最好。问题是如何根据实际情况找到这条最好的、最易于分类的投影线。这就是fisher法所要解决的基本问题。
一维空间的Fisher线性判别函数为:
其中,m1和m2是两个样本的均值,S1,S2分别为各类样本的的类内离散度。投影方向w为:
在Fisher判决函数中,分子反应了映射后两类中心的距离平方,该值越大,类间可分性越好;分母反应了两类的类内的离散度,其值越小越好;从总体上讲, 的值越大越好,在这种可分性评价标准下,使 达到最大值的 即为最佳投影方向。以上所做的全部工作都是将d维空间的样本集映射成一维样本集,然后,我们只需要再确定一个阈值,将投影点与阈值比较,便可作出决策。本程序中,采用的是:
阈值=(m1-m2)/2
然后再根据决策规则比较投影与阈值大小就可判断属于什么类型。
Fisher线性判别的主要优点是简单,容易实现,且计算量和存储量小。
二、流程图
三、核心代码
sonar
1 | clear all; |
Iris
1 | clear all; |
四、结果数据
soner
0.7163 0.7452 0.7452 0.7404 0.7740 0.7452 0.7692 0.7404 0.7163 0.7740
平均值 0.7466
Iris
0.9733 0.9667 0.9733 0.9733 0.9867 0.9667 0.9800 0.9800 0.9800 0.9733
平均值 0.9753