優勢:算法
缺點 :機器學習
依靠歐式距離公式來計算距離,能夠應用到多維學習
d=sqrt( ∑(xi1-xi2)^2 ) 這裏i=1,2..nrest
k 的意義: 取離目標點最近的k個點code
/** parameters: inputVec: 輸入向量 dataSet : 原始數據集(基本元素爲樣本向量) dataClassVect: 樣本類別向量 k : 取最近的k個點 return : 類別 */ classify(inputVec, dataSet, dataClassVect, k): //key->距離 value->類別 distances = {} for i=0 to dataSet.len: distances.add(calculateDistance(intputVec, data), dataClassVect[i]) distances.sortByKey_asc() //key->類別 value->出現次數 classCount = {} for i=0 to k: classCount[distances[i]]++ classCount.sortByValue_desc() return classCount.first().key()