matlab knn实现,Matlab之KNN实现

1.     算法流程

1)      通过Matlab产生高斯分布产生两类数据,并标明类别

2)      数据初始化:设置K=某个常数(一般为奇数)

3)      对于每个测试数据,

计算其到两类数据的所有点的距离

对于上述求得的距离,选出K个最小的,

检测这选出的K个值中属于类别1和类别2的个数

If Cnt1>Cnt2

属于类别1;

Else

属于类别2;

2、实验代码:

clear all;

close all;

clc;

%%第一个类数据和标号

mu1=[0 0];  %均值

S1=[0.3 0;0 0.35];  %协方差

data1=mvnrnd(mu1,S1,100);   %产生高斯分布数据

plot(data1(:,1),data1(:,2),'+');

label1=ones(100,1); %产生100行1列的单位矩阵

hold on;

%%第二个类数据和标号

mu2=[1.25 1.25];

S2=[0.3 0;0 0.35];

data2=mvnrnd(mu2,S2,100);

plot(data2(:,1),data2(:,2),'ro');

label2=label1+1; %产生100行1列的全为2的矩阵

data=[data1;data2];%数据合并

label=[label1;label2];

grid on;

K=11;   %两个类,K取奇数才能够区分测试数据属于那个类

%测试数据,KNN算法看这个数属于哪个类

for ii=-3:0.1:3

for jj=-3:0.1:3

test_data=[ii jj];  %测试数据

label=[label1;label2];

%%下面开始KNN算法,显然这里是11NN。

%求测试数据和类中每个数据的距离,欧式距离(或马氏距离)

distance=zeros(200,1); %产生200行1列的零矩阵

for i=1:200

distance(i)=sqrt((test_data(1)-data(i,1)).^2+(test_data(2)-data(i,2)).^2); %(xi-X)2+(yj-Y)2

end

%选择排序法,只找出最小的前K个数据,对数据和标号都进行排序

for i=1:K

ma=distance(i);

for j=i+1:200

if distance(j)

ma=distance(j);

label_ma=label(j);

tmp=j;

end

end

distance(tmp)=distance(i);  %排数据

distance(i)=ma;

label(tmp)=label(i);        %排标号,主要使用标号

label(i)=label_ma;

end

cls1=0; %统计类1中距离测试数据最近的个数

for i=1:K

if label(i)==1

cls1=cls1+1;

end

end

cls2=K-cls1;    %类2中距离测试数据最近的个数

if cls1>cls2

plot(ii,jj);     %属于类1的数据画小黑点

end

end

end

3、结果说明

本算法的测试数据是坐标轴上的点,范围是x[-3,3], y[-3,3];

最终结果一类用黑点表示,一类用空白表示

4、算法结果:

0818b9ca8b590ca3270a3433284dd417.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 计算 工程,matlab工程计算.doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp计算机&nbsp>&nbspmatlabmatlab工程计算.doc167页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。下载提示1.本站不保证该用户上传的文档完整性,不预览、不比…

matlab制作打地鼠游戏,scratch编程制作打地鼠的游戏教程

scratch编程制作打地鼠的游戏教程Sk1少儿编程网-https://www.pxcodes.comSk1少儿编程网-https://www.pxcodes.com首先,新建背景和角色,从背景库/角色库中分别选择森林和地鼠、锤子Sk1少儿编程网-https://www.pxcodes.com1.角色:洞Sk1少儿编程…

php301重定向跳转,php如何设置301重定向跳转

php设置301重定向跳转的方法:在跳转前设置状态码【header( "HTTP/1.1 301 Moved Permanently" );header("Location:your_dest_url")】。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑,该方法适用于所有…

华为发布《大交通时代》:开启未来数字交通宏图

9月24日,在华为全联接2021大会期间,华为携手电子工业出版社及行业专家、共同举办了业内首部交通行业数字化转型系统性专著《大交通时代:行业数字化转型之道》(以下简称《大交通时代》)新书发布媒体沟通会。本书理论结合…

树莓派 摄像头 php,树莓派3 之 USB摄像头安装和使用

需求如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头(有点贵)。如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头。你可能已经在PC上安装过了。我买的如图的这款本篇文章讲解的就是 在树莓派上使用U…

Gartner发布2021年低代码魔力象限,Mendix名列前位

到2025年,企业所开发的新应用中有70%将使用低代码或无代码技术,而2020年的这一比例还不到25%。低代码应用平台在其技术采用曲线上已从"早期采用者"进入到"早期多数人"阶段;而且低代码是“适合主流业务用例的强大的最佳应…

python爬虫入门心得体会,python爬虫入门和实例

爬虫不外乎是为了获取网络上的信息,要取得信息,你就得给给服务器发请求,然后服务器把信息发给你,这一步一般较为简单。服务器发给你的一般是一个html文件,拿到文件后,你可能会觉得这是什么乱七八糟的东西&a…

python的整数类型_Python int 数字整型类型 定义int()范围大小转换

本文主题是讲python数字类型python int整型使用方法及技巧。它是不可变数据类型中的一种,它的一些性质和字符串是一样的,注意是整型不是整形哦。 Python int有多种数字类型:整型int、长整型、布尔型bool、浮点数float、复数complex&#xff0…

Gartner发布2021年人工智能技术成熟度曲线

编辑 | 宋慧 供稿 | Gartner 全球信息技术研究和顾问公司Gartner 2021年人工智能技术成熟度曲线(Hype Cycle for Artificial Intelligence, 2021)中的四个趋势正在推动近期人工智能创新。这四个趋势是:负责任的人工智能、小而宽数据策略、人…

“低代码”将干掉 70% 的软件开发工作

作者| Mr.K 编辑| Emma来源| 技术领导力(ID:jishulingdaoli)根据Gartner 预测:到 2025 年,70% 的新应用将由低代码/无代码技术完成开发。也就是说,“低代码”将干掉70%的传统软件开发工作。什么是传统软件开发工作?说…

漫画:什么是 “图灵测试” ?

作者| 小灰来源| 程序员小灰艾伦麦席森图灵(1912-1954)在一间小黑屋里,有这样三个角色:一个人类评审员,两个受试者A和B。其中一个受试者是计算机的人工智能程序,另一个受试者是人类。评审员无法直接看到受试…

云原生,智慧营销破圈新利器

如今企业数字化转型进入深水区,我们步入全域精细化营销时代,企业增长和营销需求不断变化,MarTech(营销技术)正紧跟其后。据艾瑞咨询《2021年中国MarTech市场研究发展报告》指出,2021年我国 MarTech 各子场景…

埃森哲携手阿里云共建基于云原生的消费者运营中台解决方案

简介: 作为全球领先的专业服务公司,埃森哲凭借独特的业内经验与专业技能,以及翘楚全球的卓越技术中心和智能运营中心,此次携手阿里云为零售行业客户提供专业的云原生CDPMA解决方案。 在这个充满变革与颠覆的时代,新技…

SuperEdge正式成为CNCF沙箱项目,腾讯云携手六家厂商在边缘计算领域踏入新篇章

刚刚获悉,分布式云原生边缘容器开源项目SuperEdge通过了全球顶级开源基金会云原生计算基金会(CNCF)技术监督委员会评定,正式成为CNCF 沙箱项目。这不仅意味着SuperEdge得到了云原生开源社区的认可,同时也标志着该项目与…

指数级暴增、复杂场景下,揭秘百度云原生湖仓架构等系列数据产品

9月28日,百度智能云2021“云智技术论坛”智能大数据专场在上海举办。本次会议以“云智一体,让大数据发挥大价值”为主题,百度副总裁谢广军携百度多位资深技术专家与行业伙伴出席会议,共同探讨了大数据发展新形势下,企业…

重磅官宣:Nacos2.0发布,性能提升10倍

简介: ​Nacos2.0 作为一个跨代版本,彻底解决了 Nacos1.X 的性能问题,将性能提升了 10 倍。 作者:席翁 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态。 但是随着用户深入使用…

oracle解决存储嗅探,DBA警示录:存储故障的处理应当谨慎

DBA警示录:存储故障的处理应当谨慎昨天有客户的存储出现问题,导致数据库崩溃,需要进行数据库恢复。客户的存储使用RAID 5划分,声称出现故障后未进行任何操作,可是当存储恢复工程师将文件恢复出来后,文件显示…

python识别手写文字_如何快速使用Python神经网络识别手写字符?(文末福利)

原标题:如何快速使用Python神经网络识别手写字符?(文末福利) 点击标题下[异步社区]可快速关注 在本文中,我们将进一步探讨一些使用Python神经网络识别手写字符非常有趣的想法。如果只是想了解神经网络的基本知识,那不必阅读本文,可…

一年增加 1.2w 星,Dapr 能否引领云原生中间件的未来?

简介: 虽然 Dapr 在国外有很高的关注度,但在国内知名度非常低,而且现有的少量 Dapr 资料也偏新闻资讯和简单介绍,缺乏对 Dapr 的深度解读。在 Dapr v1.0 发布之际,我希望可以通过这篇文章帮助大家对 Dapr 形成一个准确…