废话不多说,直接放码过来。

 from numpy import *
import operator
def createDataSet () :
group = array([[0.5,0.5],[0.9,0.9],[1.0,1.1],[1.0,1.0],[,],[,0.1]])#创建数组
labels = ['c','A','A','A','B','B'] #列表
return group,labels def classify0(inX,dataSet,labels,k):
dataSetSize = dataSet.shape[] #dataSet[] 中有几个元素 答案是4
diffMat = tile(inX,(dataSetSize,)) - dataSet
sqDiffMat = diffMat** #计算出来距离
sqDistances = sqDiffMat.sum(axis=) #将一个小数组合并的距离的平方
distances = sqDistances**0.5 #得到具体的距离
sortedDistIndicies = distances.argsort() #根据索引值进行排序
print(sortedDistIndicies)
classCount = {} for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]] #取出来最小值
# print(voteIlabel)
classCount[voteIlabel] = classCount.get(voteIlabel,)+ # 记录每组分类的案例数。
# print(classCount)
sortedClassCount = sorted(classCount.items(),key=operator.itemgetter(),reverse = True) # 按照案例数的大小进行排序。
return sortedClassCount[][]

  我看得是《机器学习实战》这一本书,我坑在这几行代码的地方是    选取与当前点距离最小的K各店,确定K各点所在类别的出现频率,返回这些类别中出现最多的类别就是想要点的类别。

  就这样,挺有意思的。

04-28 02:30