确定数据相互对应的坐标点,仔细考虑一下过程,我去,这不就是kNN分类过程么,只不过需要一点点修改。
kNN:
def classify0(inX,dataSet,labels,k):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX,(dataSetSize,1)) - dataSet
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 order2p(p1,p2):
p1 = numpy.array(p1)
p2 = numpy.array(p2)
p = []
for x in p1:
dataSetSize = p2.shape[0]
diffMat = numpy.tile(x,(dataSetSize,1)) - p2
sqDi