使用python实现knn

来源:互联网 发布:下载制作ppt软件 编辑:程序博客网 时间:2024/06/07 19:49
import numpy as npimport operatordef createDataSet():    group =np.array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])    labels=['A','A','B','B']    return group,labelsdef classify0(inX,dataSet,labels,k):    dataSetSize=dataSet.shape[0]    diffMat=np.tile(inX,(dataSetSize,1))-dataSet    sqDissMat=diffMat**2    sqDistances=sqDissMat.sum(axis=1)    distance=sqDistances**0.5    sortedDistIndicies=distance.argsort()    classCount={}    for i in range(k):        voteLabel=labels[sortedDistIndicies[i]]        classCount[voteLabel]=classCount.get(voteLabel,0)+1    sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)    return sortedClassCount[0][0]if __name__ =='__main__':    group,labels=createDataSet()    result=classify0([0.0,0.0],group,labels,3)    print(result)
np.tile(inX,(dataSetSize,1)):将intX按行重复dataSize次
‘0’按列进行计算
‘1’按行进行计算
原创粉丝点击