在MATLAB中实现KNN分类器
1、思路1. 导入训练数据:5位同学各自得两门学科(数学和电子)得成绩以及对应结果(过关和没过关)2. 选定k值3. 输入测试样本:新来的一位同学两门学科的成绩4. 计算和训练数据之间的距离,并排序5. 选取距离最近的k个训练数据的结果中出现频率最高的结果作为最后预测的结果
2、具体代码clcclear allclose al盟敢势袂lwarning offx=[4 6 7 5 8];y=[3 7 8 5 8];c=["Fail","Pass","Pass","Fail","Pass"];k=3;a=6;b=8;distance=[];for i=1:length(x) e=sqrt((x(i)-a)^2+(y(i)-b)^2); distance=[distance e];endtemp=0;gemp=0;for i=1:length(distance) for j=1:(length(distance)-i) if(distance(j)>distance(j+1)) temp=distance(j); distance(j)=distance(j+1); distance(j+1)=temp; gemp=c(j); c(j)=c(j+1); c(j+1)=gemp; end endendclassy=[];for i=1:k classy=[classy c(i)];endoutput=string(mode(categorical(classy)))
3、结果展示
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:55
阅读量:67
阅读量:75
阅读量:66
阅读量:80