资源描述:
《线性多分类问题算法实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、模式识别题目作业三一一线性多分类问题的算法实现院系专业班级学生姓名学号二O—八年三月一、问题重述分别使用以下四种方法对样本进行训练和测试。方法:1)基于类均值的最小距离法;2)近邻法;3)基于两类判决的l-r策略的固定增量算法;4)基于两类判决的1-1策略的固定增量算法。样本:1)三类九个训练样本第一类:(75,145)(80,150)(85,155)第二类:(55,105)(60,100)(65,95)第三类:(110,100)(100,100)(110,80)2)三个测试样本第一个:(60,14
2、0)第二个:(80,125)第三个:(90,110)二.算法流程1、基于类均值的最小距离法基于类均值的最小距离法思想是首先计算每类训练样本的均值点,再分别计算每个均值点到测试样木的距离,测试样木归属于距其最近的均值点所在的数据类型。算法流程如下:图1基于类均值的最小距离法流程图核心程序如下:%训练样木FirstTrain=[75,145;80,150;85,155];SecondTrain=[55,105;60,100;65,95];ThirdTrain=[110,100;100,100;110,8
3、0];%求均值Mean二[mean(FirstTrain);mean(SecondTrain);mean(ThirdTrain)];%测试样本Study=[80,125];%判别结果StudyType二zeros(size(Study,1));%基于类均值的最小距离法fori=l:size(Study,1)[n,m]=min(pdist2(Study(i,:),Mean));StudyTypc(i)二Endfigurescatter(FirstTrain(:,1),FirstTrain(2),'",
4、'b');text(Mean(l,1),Mean(l,2),'第一类','Color,,‘k');holdon;seatter(SecondTrain(:,1),SecondTrain(:,2),'o','b');text(Mean(2,1),Mean(2,2),‘第二类',‘Color',‘k');scatter(ThirdTrain(:,1),ThirdTrain(:,2),'d','b');text(Mean(3,1),Mean(3,2),'第三类','Color,,‘k');fori=l:s
5、ize(Study,1)ifStudyType(i)二二1text(Study(i,1)+1,Study(i,2),‘第一类',‘Color','r');elseifStudyType(i)==2text(Study(i,1)+1,Study(i,2),'第二类’,'Color,,‘r');clseifStudyType(i)==3text(Study(i,1)+1,Study(i,2),'第三类','Color,,‘r');endscatter(Study(i,1),Study(i,2),''g'
6、);forj=l:size(Mean,1)ifj==StudyTypc(i)plot([Study(i,1),Mean(j,1)],[Study(i,2),Mean(j⑵]'Color',‘m');elseplot([Study(i,l),Mean(j,1)],[Study(i,2),Mean(j,2)],';endendendtitleC最小距离法分类结果')xlabel('xl');ylabel('x2')2、近邻法近邻法的思想是首先计算每个训练样本到测试样本的距离,测试样本归属于距其最近的训练
7、样本点所在的数据类型。算法流程如下:图2近邻法流程图核心算法:%训练样木FirstTrain=[75,145;80,150;85,155];SecondTrain=[55,105;60,100;65,95];ThirdTrain=[110,100;100,100;110,80];%测试样本Study二[60,140;80,125;90,110];%判别结果StudyType=zeros(size(Study,1));First二sizc(FirstTrain,1);Second=First+size
8、(SecondTrain,1);Third=Second+size(ThirdTrain,1);Train=[FirstTrain;SecondTrain;ThirdTrain];%近邻法fori=l:size(Study,1)[n,m]=min(pdist2(Study(i,:),Train));StudyType(i)=m;endfori=l:size(Study,1)subplot(1,size(Study,1),i)seattcr(FirstTrainC,1)