资源简介
模式识别中一个常用的算法,即k近邻法,用matlab编程实现代码
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%K-最近邻分类器%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
clc
y=importdata(‘F:\neural computation\Experiment\text1\Iris.txt‘);
p=y(:2:5);
p=p‘;
add=ones(501);
num=zeros(13);
count=0;
% for n=1:150
% count=0;
for i=1:3
for j=1:50
for k=1:150
distance(k)=mse(p(:k)-p(:(i-1)*50+j));%保存每个向量与所有训练样本之间的距离
end
[d1 index1]=sort(distance);%对距离distance向量进行从小到大的排序
num=[0 0 0];
for m=1:20 % 考察num, 存放的是排序后distance前20个属于每一类别的个数
if index1(m)<=50
num(1)=num(1)+1;
elseif index1(m)<=100
num(2)=num(2)+1;
else
num(3)=num(3)+1;
end
end
[d2 class]=max(num);% 属于哪类的个数最多,就属于哪类,class 即就是该向量所属的类别
if i==class
count=count+1;
end
A((i-1)*50+j)=class;%存放判断的结果
end
end
count
rate=count/150
% n
% end
figureplot(y(:1)A‘r*‘)%画图分类
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3200 2009-12-25 21:05 Iris.txt
文件 1183 2010-01-09 21:58 TNNC3.m
----------- --------- ---------- ----- ----
4383 2
- 上一篇:高斯混合模型EM算法Matlab代码
- 下一篇:图像拼接程序
评论
共有 条评论