MATLAB分类与判别模型算法:K-近邻法(KNN)分类代码 【含Matlab源码 MX_001期】

算法简介:

K-近邻法(KNN)是一种简单而有效的分类算法,也可用于回归问题。它的基本原理是根据待分类样本与训练样本的距离,选取最近的K个样本进行投票决定分类。该算法无需训练过程,而是利用训练数据集直接进行预测。KNN算法简单易懂,对于非线性问题有很好的适应性,但对于大型数据集计算量较大。在MATLAB中,可以使用fitcknn函数来训练KNN分类模型,使用predict函数对新样本进行预测。

部分代码:

Matlab 复制代码
x=randn(1,2);%待判样本
hold on,plot(x(1),x(2),'m+','MarkerSize',10,'LineWidth',2)
for i=1:2*N
    dist(i)=norm(x-X(i,:));
end
[Sdist,index]=sort(dist,'ascend');
K=5; %近邻数目 
for i=1:K
    hold on,plot(X(index(i),1),X(index(i),2),'ko');
end
legend('Cluster 1','Cluster 2','x','Location','NW')
flag1=0;flag2=0;
for i=1:K
    if ceil(index(i)/N)==1
        flag1=flag1+1;
    elseif ceil(index(i)/N)==2
        flag2=flag2+1;
    end
end
disp(strcat('K近邻中包含',num2str(flag1),'个第一类样本'));
disp(strcat('K近邻中包含',num2str(flag2),'个第二类样本'));
if flag1>flag2
    disp('判断待判样本属于第一类');
else
    disp('判断待判样本属于第二类');
end

结果展示:

代码获取:MATLAB分类与判别模型算法:K-近邻法(KNN)分类代码

相关推荐
mCell4 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
wuyk5555 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
峥无6 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
不会代码的小猴6 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
203号居民8 小时前
LeetCode hot 100 —41. 缺失的第一个正数
数据结构·算法·leetcode
专注仿真10 小时前
问答大模型技术方案算法实现-熵权法融合算法 + 交叉编码器重排算法
人工智能·python·算法·语言模型·问答大模型关键算法·熵权融合算法·交叉编码器重排算法
满怀冰雪11 小时前
22-使用 PaddleClas 快速训练图像分类模型
人工智能·python·机器学习·分类·数据挖掘·paddlepaddle
地平线开发者11 小时前
量化为什么会有损失:从量化误差到精度下降
算法
手写码匠12 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 会话管理与上下文工程实战:让智能体“记住该记住的,忘掉该忘掉的“
人工智能·深度学习·算法·aigc