Fisher分类器Matlab

Fisher分类器用于解决二类线性可分问题。

Fisher准则基本原理:找到一个最合适的投影轴,使两类样本在该轴上投影之间的距离尽可能远,而每一类样本的投影尽可能紧凑,从而使分类效果为最佳。



例如上图中:通过将方块点和圆点向w1投影,然后再在设置合适的阈值即可将方块和圆点分离。


 

Matlab程序如下:

[html]  view plain   copy
  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  2. %By Shelley from NCUT,April 2nd 2011  
  3. %Email:just_for_h264@163.com  
  4. %本m文件实现fisher算法,并对两个二维正态分布随机序列  
  5. %进行训练,进而可在屏幕上任意取点,程序可输出属于第一类  
  6. %还是第二类  
  7. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  8.   
  9. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  10. %分别产生x轴和y轴都为正态分布的随机序列  
  11. %假设x轴和y轴序列相互独立,可产生二维正态分布随机序列  
  12. %w1、w2分别用来保存两个训练集的横坐标和纵坐标  
  13. %用normrnd函数产生正态分布函数  
  14. %normrnd(mean,omega,[row,column])  
  15. %mean:均值;omega:标准差  
  16. %row:产生随机序列的行数;column:产生随机序列的列数  
  17. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  18.  X1 = normrnd(40,10,[200,1]);  
  19.  Y1 = normrnd(40,10,[200,1]);  
  20.  w1=[X1, Y1];  
  21.  X2 = normrnd(5 ,10,[100,1]);  
  22.  Y2 = normrnd(0 ,10,[100,1]);  
  23.  w2=[X2, Y2];  
  24.    
  25. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  26. %以下部分为fisher算法的实现  
  27. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  28. %计算样本均值  
  29. m1=mean(w1)';  
  30. m2=mean(w2)';  
  31. %s1、s2分别代表表示第一类、第二类样本的类内离散度矩阵  
  32. s1=zeros(2);  
  33. [row1,colum1]=size(w1);  
  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fisher线性分类器,也称为Fisher判别分析(Fisher Discriminant Analysis),是一种经典的线性分类方法,用于将数据集分成两个或多个不同类别。它是由英国统计学家罗纳德·A·费舍尔(Ronald A. Fisher)在1936年提出的。 Fisher线性分类器的目标是找到一个投影方向,使得在该方向上不同类别的样本尽可能地分开,同一类别的样本尽可能地接近。具体而言,Fisher线性分类器通过计算类间散布矩阵和类内散布矩阵的比值来确定最佳投影方向。 在MATLAB中,可以使用`fitcdiscr`函数来实现Fisher线性分类器。该函数可以根据训练数据集自动学习最佳的投影方向,并返回一个分类器对象。然后,可以使用该分类器对象对新的样本进行分类预测。 下面是使用MATLAB实现Fisher线性分类器的示例代码: ```matlab % 假设有一个训练数据集X和对应的标签y X = ...; % 训练数据集 y = ...; % 标签 % 使用fitcdiscr函数学习Fisher线性分类器 classifier = fitcdiscr(X, y); % 对新的样本进行分类预测 newSample = ...; % 新的样本 predictedLabel = predict(classifier, newSample); ``` 以上代码中,`X`是训练数据集,`y`是对应的标签。`fitcdiscr`函数会根据这些数据学习最佳的投影方向,并返回一个分类器对象`classifier`。然后,可以使用`predict`函数对新的样本`newSample`进行分类预测,得到预测的标签`predictedLabel`。 希望以上介绍对您有帮助!如果您有任何进一步的问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值