?? knn.m
字號:
%讀取數據 2008-6-25 賈永庫
train=xlsread('train.xls');
test=xlsread('test.xls');
%獲得訓練樣本和測試樣本的個數
[m,n]=size(train)
[m1,n1]=size(test)
answer=zeros(m1,1);
for i=[1:1:m1]
sim=zeros(m,2);
%對于每一個測試樣本,分別計算它與每一個訓練樣本的距離
for j=1:1:m
sim(j,1)=knnsim(test(i,1:2),train(j,1:2));
sim(j,2)=train(j,3);
end
%對計算出來的結果進行排序
[simtemp,index]=sort(sim(:,1));
sim(:,2)=sim(index,2);
sim(:,1)=simtemp;
%找出與訓練樣本最為接近5個樣本,并它屬于哪一個類(因為類別標志為0和1,所以只要判斷距離最近的5個點的類別值和是否大于2就可以知道類別)
flag=sum(sim((m-4):m,2));
if flag>2
answer(i)=1;
else
answer(i)=0;
end
end
%列出所有測試樣本的分類結果
answer
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -