码迷,mamicode.com
首页 > 其他好文 > 详细

j简单的分类实现-K近邻

时间:2014-12-24 21:26:18      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

 1 __author__ = worfzyq
 2 from numpy import *
 3 import operator
 4 
 5 def creatDataset() :
 6     group=array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])
 7     labels=[A,A,B,B]
 8     return group,labels
 9 
10 def classify0(inX,dataSet,labels,k) :
11     dataSetSize=dataSet.shape[0]  #返回数组得到维数
12     # print(dataSetSize)
13     diffMat=tile(inX,(dataSetSize,1))-dataSet  #把inX扩展datasetSize-1维然后做减法
14     #print(diffMat)
15     sqDiffMat=diffMat**2  #乘方
16     #print(sqDiffMat)
17     sqDistances=sqDiffMat.sum(axis=1) #把每一列加起来
18     #print(sqDistances)
19     distances=sqDistances**0.5   # 得到距离
20     sortedDistIndicies=distances.argsort() #得到排好序得到下标
21     classCount={}
22     for i in range(k) :
23         voteIlabel=labels[sortedDistIndicies[i]]
24         classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
25     sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
26     #print(sortedClassCount)
27     return sortedClassCount[0][0]
28 
29 group,labels=creatDataset()
30 # print(group)
31 print(classify0([0,0],group,labels,3))

j简单的分类实现-K近邻

标签:

原文地址:http://www.cnblogs.com/acvc/p/4183272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!