需求
rm(list=ls())
knnprop=read.csv("knn_fictious.csv",header = false)
#樣本個數
prow=86
#測試資料的個數
srow=258
#迴圈次數
fornum=30
#knn演算法
knn
#距離排序
distancec=distancec[order(distancec[,1]),]
#兩個暫時變數,用於判斷分類
numa=0
numb=0
#儲存前k個距離,樣本分類標籤
for(k in 1:k) else
}#判斷分類結果,並儲存
if(numa>numb) else
#儲存待分類資料的原始分類結果
distancearray[i,2*k+2]=p[i,]$v5
#判斷分類是否正確
if(distancearray[i,2*k+2]==distancearray[i,2*k+1]) else
} return(distancearray)
}#求正確率
accuracy
} accuracy=tnum/(tnum+fnum)
return(accuracy)
}#隨機抽取樣本迴圈30次,求30次正確率
sample
rst=mean(accuracy)
return(rst)
}rst1=sample(knnprop,3)
rst2=sample(knnprop,7)
rst3=sample(knnprop,11)
rst1
rst2
rst3
R語言實現KNN 演算法
knn是機器學習中最簡單的分類演算法之一 就是把每乙個測試樣本跟訓練樣本中的每乙個樣本求他們的歐式距離,然後選出最小的幾個,裡面哪乙個類多 這個測試樣本就屬於哪乙個類 用r語言自帶的iris 寫了一下 data iris length iris 1 idx sample 150,100 train ...
k 近鄰演算法實現 k NN
演算法思想 計算目標與樣本庫中所有樣本的距離,根據計算出來的距離將所有樣本由近到遠進行排序,取出前k個樣本,將這k個樣本中出現次數最多的型別作為目標的類別。from numpy import import operator defcreatedataset group array 1.0,1.1 1...
K 近鄰演算法 KNN
knn k nearest neighbor 假設訓練集有記錄 r1 r2,rn共n條,訓練集的特徵向量及其對應的類別都是已知的,每個記錄的特徵向量為 t1 t2,tk共k個特徵,待測試的記錄為ru 1 計算ru 的特徵向量與訓練集的每條記錄 即r1 r2,rn 的特徵向量的歐式距離,選取距離最小的...