模式识别 最近邻法和k近邻法MATLAB实现

最近邻法和k-近邻法

学号 姓名:吴林

一.基本概念:

最近邻法:对于未知样本x,比较x与N个已知类别的样本之间的欧式距离,并决策x与距离它最近的样本同类。

K近邻法:取未知样本x的k个近邻,看这k个近邻中多数属于哪一类,就把x归为哪一类。K取奇数,为了是避免k1=k2的情况。

二.问题分析:

要判别x属于哪一类,关键要求得与x最近的k个样本(当k=1时,即是最近邻法),然后判别这k个样本的多数属于哪一类。

可采用欧式距离公式求得两个样本间的距离s=sqrt((x1-x2)^2+(y1-y2)^2)

三.算法分析:

该算法中任取每类样本的一半作为训练样本,其余作为测试样本。例如iris中取每类样本的25组作为训练样本,剩余25组作为测试样本,依次求得与一测试样本x距离最近的k个样本,并判断k个样本多数属于哪一类,则x就属于哪类。测试10次,取10次分类正确率的平均值来检验算法的性能。

四.MATLAB代码:

最近邻算实现对Iris分类

clc;

totalsum=0;

for ii=1:10

data=load('iris.txt');

data1=data(1:50,1:4);%任取Iris-setosa数据的25组

rbow1=randperm(50);

trainsample1=data1(rbow1(:,1:25),1:4);

rbow1(:,26:50)=sort(rbow1(:,26:50));%

testsample1=data1(rbow1(:,26:50),1:4);

data2=data(51:100,1:4);%任取Iris-versicolor数据的25组

rbow2=randperm(50);

trainsample2=data2(rbow2(:,1:25),1:4);

rbow2(:,26:50)=sort(rbow2(:,26:50));

testsample2=data2(rbow2(:,26:50),1:4);

data3=data(101:150,1:4);%任取Iris-virginica数据的25组

rbow3=randperm(50);

trainsample3=data3(rbow3(:,1:25),1:4);

rbow3(:,26:50)=sort(rbow3(:,26:50));

testsample3=data3(rbow3(:,26:50),1:4);

trainsample=cat(1,trainsample1,trainsample2,trainsample3);%包含75组数据的样本集

testsample=cat(1,testsample1,testsample2,testsample3);

newchar=zeros(1,75);sum=0;

[i,j]=size(trainsample);%i=60,j=4

[u,v]=size(testsample);%u=90,v=4

for x=1:u

for y=1:i

result=sqrt((testsample(x,1)-trainsample(y,1))^2+(testsample(x,2)-trainsample(y,2))^2+(testsample(x,3)-trainsample(y,3))^2+(testsample(x,4)-trainsample(y,4))^2); %欧式距离

newchar(1,y)=result;

end;

[new,Ind]=sort(newchar);

class1=0;

class2=0;

class3=0;

if Ind(1,1)<=25

class1=class1+1;

elseif Ind(1,1)>25&&Ind(1,1)<=50

class2=class2+1;

else

class3=class3+1;

end

if class1>class2&&class1>class3

m=1;

ty='Iris-setosa';

elseif class2>class1&&class2>class3

m=2;

ty='Iris-versicolor';

elseif class3>class1&&class3>class2

m=3;

ty='Iris-virginica';

else

m=0;

ty='none';

end

if x<=25&&m>0

disp(s

k近邻matlab,模式识别 最近邻法和k近邻法MATLAB实现.doc相关推荐

  1. 【光学】基于matlab GUI矩阵法和等效界面法光学薄膜对反射率影响【含Matlab源码 2102期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI矩阵法和等效界面法光学薄膜对反射率影响[含Matlab源码 2102期] 点击上面蓝色字体,直接付费下载, ...

  2. 用matlab的编程法和游动鼠标法求二阶传递函数的上升时间、峰值时间、超调量和调节时间 - Gavin_Hall的博客 - CSDN博客

    1. 准备 终值:c(∞) 上升时间 tr:响应从峰值的10%上升到峰值的90%所需要的时间:而阶跃响应则是从终值的10%上升到终值的90%所需要的时间:对有振荡的系统,也可以定义为从0到第一次到达终 ...

  3. matlab使用相关分析法和hankel矩阵法进行系统辨识

    待辨识模型: %H = 180.60 / ( 48.96s^2 + 14.00s + 1.0 ) H = tf( [180.60],[ 48.96 14 1.0 ] ) ; b = [ 180.60 ...

  4. 综合评价分析法:熵权法matlab实现+层次分析法matlab实现

    综合评价分析法:熵权法matlab实现+层次分析法matlab实现 层次分析法matlab实现 clc;clear%层次分析法matlab实现A=[1 1/9 1/2 1/4 1/6 9 1 6 5 ...

  5. parzen窗方法和k近邻方法估计概率密度

    机器学习实验四,详情请参考<模式分类>第二版第四章课后上机练习4.3.4.4节 实验环境: Matlab2016a Parzen窗估计方法: 已知测试样本数据x1,x2,-,xn,在不利用 ...

  6. 【图像处理】图像噪声去除实验 用 matlab 实现KNN(K近邻平滑滤波器)和 SNN(对称近邻平滑滤波器)

    实验内容 实现KNN(K近邻平滑滤波器) 算法实现为函数[im]=KNN_denoise (I,K,N),其中I为读入的图像矩阵:K为最近邻个数,N为模板大小参数(N*N). 测试代码 im=imre ...

  7. python k近邻算法_python中的k最近邻居算法示例

    python k近邻算法 K最近邻居(KNN) (K-Nearest Neighbors (KNN)) KNN is a supervised machine learning algorithm t ...

  8. k近邻算法_机器学习之K近邻分类算法的实现

    K近邻算法(k-nearest neighbors, KNN)是最基本的机器学习算法之一.所谓的K,就是距离最近的K个邻居的意思.其实,KNN在我们平常的生活中也会不自主的应用,比如,俗语说的&quo ...

  9. knn k的选取_KNN - 初窥K近邻算法

    1>算法概述 KNN: 全名K-NearestNeighbor,K近邻算法,简单讲就是每个样本都可以用最接近的k个邻居表示,或者说共享同一个标签.KNN是一种分类(classification) ...

  10. k近邻算法_图穷匕见:K近邻算法与手写数字识别

    机器学习算法是从数据中产生模型,也就是进行学习的算法.我们把经验提供给算法,它就能够根据经验数据产生模型.在面对新的情况时,模型就会为我们提供判断(预测)结果.例如,我们根据"个子高.腿长. ...

最新文章

  1. 猴子请来的逗比项目流水总结
  2. DFS与BFS的总结
  3. java的read()_Java Reader read()方法
  4. WGAN的成功,可能跟Wasserstein距离没啥关系
  5. Razor Templating Engine
  6. js/css 检测移动设备方向的变化 判断横竖屏幕
  7. vue-cli生成项目时你应当知道的
  8. Redhat7.3安装配置Telnet详细教程
  9. Ubuntu如何定时清理内存
  10. 什么是正则表达式 ?
  11. 幼儿园调查过程怎么写_【调查问卷总结怎么写】幼儿园家长调查问卷总结
  12. 注册电气工程师发输变电基础考试通过经验分享(转载备份)
  13. gp数据库主节点故障导致数据库无法重启报错
  14. (转)宅男程序员福利:来自纽约的28位智慧与美貌并存的IT女神
  15. NLP入门干货:手把手教你3种中文规则分词方法
  16. python判断是否回文_Python语言判断输入的是否是回文数的方法
  17. apache评分条件_APACHE Ⅲ 评分标准.doc
  18. 在本地写一个以市净率为因子的回测结果
  19. 低端交换机环路检测专题
  20. drawio,程序员最好用的在线画图软件!!!

热门文章

  1. 怎么压缩ppt文件大小?
  2. 电视hdr测试软件,HDR+4K一个都不能少 本地资源播放测试
  3. 3.7V转5V电路图芯片,3.7V升压5V的升压芯片
  4. 第四轮学科评估计算机专业排名,第四轮学科评估
  5. 高通MTK 安卓手机 手机更改SN 序列号 识别码 教程视频
  6. 如何使用Flutter开发web应用
  7. 运维人员必须熟悉的运维工具汇总
  8. spring boot生成Excel表格 导出/导入
  9. 【语义分割专题】语义分割相关工作--SegNet
  10. 艾伦·图灵天才的一生,为什么却蒙羞而死?这是被时代所亏欠的一生!