kNN算法与python

我的第一个kNN算法的python代码:

from numpy import *
import operator

def classify0(inX,dataSet,labels,k):
    dataSetSize=dataSet.shape[0]
    diffMat=tile(inX,(dataSetSize,1))-dataSet
    print(diffMat)
    sqDiffMat=diffMat**2
    sqDistances=sqDiffMat.sum(axis=1)
    distances=sqDistances**0.5
    sortedDistIndicies=distances.argsort()
    classCount={}
    
    for i in range(k):
        voteIlabel=labels[sortedDistIndicies[i]]
        classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
        sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
        return sortedClassCount[0][0]


def createDataSet():
    group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
    labels=['A','A','B','B']
    return group,labels
    
group,labels=createDataSet()
print(group)
print(labels)

sample=[0,0]
print("sample "+str(sample)+" most likely is: "+classify0(sample,group,labels,3))

具体参照kindle版"机器学习实战"(Machine Learning in Action)第二章.

原文地址:https://www.cnblogs.com/Montauk/p/7126863.html