資源簡介
模式識別中一個常用的算法,即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代碼
- 下一篇:圖像拼接程序
評論
共有 條評論