【KNN分类】基于KNN算法实现数据分类附matlab完整代码

简介: 【KNN分类】基于KNN算法实现数据分类附matlab完整代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

最近邻K(KNN,K-Ncarest Neighbor)分类算法是数据挖掘分类技术中最简单的方法之一,由于其实现的简单性,在很多领域得到了广泛的应用.

⛄ 完整代码

clear;

clc;


% 训练数据、训练数据标签、测试数据、测试数据标签

load(['train_scale.mat']);

load(['train_labels.mat']);

load(['test_scale.mat']);

load(['test_labels.mat']);


K=8;   % k一般低于训练样本数的平方根

error=0;

[mtrain,ntrain]=size(train_scale);

[mtest,ntest]=size(test_scale);


% 外循环控制测试数据,内循环控制训练数据

for i=1:mtest

   dist=zeros(mtrain,1);

   for j=1:mtrain

       dist(j)=norm(train_scale(j,:)-test_scale(i,:));  %计算训练数据集与测试数据之间的欧氏距离dist

   end

   %将dist从小到大进行排序

   [Y,I]=sort(dist,1);

   

   %将训练数据对应的类别与训练数据排序结果对应

   train_labels=train_labels(I);

   

   %确定前K个点所在类别的出现频率

   classNum=length(unique(train_labels));%取集合中的单值元素的个数,得到类别数量

   predict_labels=zeros(1,classNum);

   

   % 以下for循环统计分类的标签数量

   for j=1:K

       j=train_labels(j);

       predict_labels(j)=predict_labels(j)+1;

   end

   

   %返回前K个点中出现频率最高的类别作为测试数据的预测分类

   [~,idx]=max(predict_labels);

   

   fprintf('该测试数据属于类 %d\n',idx);

   fprintf('该测试数据的真实类为:%d\n',test_labels(i));

   if idx~=test_labels(i)

       error=error+1;

   end

end

accuracy=(1-error/mtest)*100;

fprintf('准确率为:%f%%\n',accuracy);

⛄ 运行结果


⛄ 参考文献

[1]曾志浩. kNN分类算法研究及其在中毒诊断中的应用[D]. 湖南大学.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
1天前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
14 6
|
1天前
|
算法 调度
基于变异混合蛙跳算法的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图
**摘要:** 实现变异混合蛙跳算法的MATLAB2022a版车间调度优化程序,支持动态调整工件和机器数,输出甘特图。核心算法结合SFLA与变异策略,解决Job-Shop Scheduling Problem,最小化总完成时间。SFLA模拟蛙群行为,分组进行局部搜索和全局信息交换。变异策略增强全局探索,避免局部最优。程序初始化随机解,按规则更新,经多次迭代和信息交换后终止。
|
3天前
|
搜索推荐 算法
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
【排序】数据结构——排序算法概念及代码详解(插入、冒泡、快速、希尔)
|
1天前
|
机器学习/深度学习 算法 计算机视觉
基于ADAS的车道线检测算法matlab仿真
**摘要:** 基于ADAS的车道线检测算法利用Hough变换和边缘检测在视频中识别车道线,判断车道弯曲情况,提供行驶方向信息,并高亮显示。在MATLAB2022a中实现,系统包括图像预处理(灰度化、滤波、边缘检测)、车道线特征提取(霍夫变换、曲线拟合)和车道线跟踪,确保在实时场景中的准确性和稳定性。预处理通过灰度转换减少光照影响,滤波去除噪声,Canny算法检测边缘。霍夫变换用于直线检测,曲线拟合适应弯道,跟踪则增强连续帧的车道线检测。
|
1月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
|
1月前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
1月前
|
供应链 算法
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
基于分布式优化的多产消者非合作博弈能量共享(Matlab代码)
|
1月前
|
算法 调度
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)
基于多目标粒子群算法冷热电联供综合能源系统运行优化(matlab代码)

热门文章

最新文章