在MATLAB中实现KNN分类器

 时间:2026-02-14 07:01:58

1、思路

1. 导入训练数据:5位同学各自得两门学科(数学和电子)得成绩以及对应结果(过关和没过关)

2. 选定k值

3. 输入测试样本:新来的一位同学两门学科的成绩

4. 计算和训练数据之间的距离,并排序

5. 选取距离最近的k个训练数据的结果中出现频率最高的结果作为最后预测的结果

2、具体代码

clc

clear all

close all

warning off

x=[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];

end

temp=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

    end

end

classy=[];

for i=1:k

    classy=[classy c(i)];

end

output=string(mode(categorical(classy)))

3、结果展示

在MATLAB中实现KNN分类器

  • 王者荣耀变身大作战模式活动入口在哪?怎么进?
  • 我的世界BC2怎么制作火力发电机
  • 我的世界工业2怎么合成金属成型机怎么使用
  • 我的世界面包怎么做
  • 我的世界怎么获得黑曜石:[1]形成黑曜石
  • 热门搜索
    姿势的拼音怎么写 恐龙大全 头像图片大全 羊排怎么炖好吃 去皱纹最好的方法 去寒气的方法 四字词语大全 舌头上有白色的舌苔是怎么回事 木耳怎么做好吃 化妆棉怎么用