优势:算法
缺点 :机器学习
依靠欧式距离公式来计算距离,能够应用到多维学习
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()