您的位置:首页 > 编程语言 > Python开发

KNN-1 python 实现

2016-06-14 12:17 295 查看
#coding=utf-8  from numpy  import *import operator#创建数据集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#KNN算法实现def knn_classify0(inx,dataSet,labels,k):    #inx 用于分类的输入向量    #dataSet 输入的训练样本集    #标签 labels    #k 最近邻居的数目    dataSetSize= dataSet.shape[0]    #tile函数是重复函数    diffmat = tile(inx, (dataSetSize,1)) - dataSet     sqdiffmat = diffmat**2    #对数组按行求和    sqdistance = sqdiffmat.sum(axis=1)    distance=sqdistance**0.5    #对数组按列排序,返回索引值    sortedDisIndex = distance.argsort(axis=0)    #建立字典    classCount={}    for i in range(k):        votelabel=labels[sortedDisIndex[i]]        #字典的get方法(a,b),如果字典里没有此key返回b,有返回key_value。不断的累积标签对应的数值        classCount[votelabel]=classCount.get(votelabel,0)+1    sortedclassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)    return sortedclassCount[0][0]
group,label=createDataSet()result0=knn_classify0([2,2], group, label, 3)print result0                                                                           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: