# -*- coding: utf-8 -*-
from math import sqrt
from numpy import *
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
def classify0(dataSet,labels,x,inX):
\'\'\'
:param dataSet:
:param labels:
:param x:
:param inX: 新的实例
:return:
\'\'\'
classCount=[]
i=0
for data in dataSet:
temp_dist = sqrt(sum((p1 - p2) ** 2 for p1, p2 in zip(data, inX)))
print(temp_dist)
item=[temp_dist,data,labels[i]]
classCount.append(item)
i+=1
classCount.sort(key=lambda x:x[0]) #以指定维度排序
count={}
for i in range(x):
votelabel=classCount[i][2]
# print(votelabel)
count[votelabel]=count.get(votelabel,0)+1
sortedCount=sorted(count.iteritems(),key=lambda x:x[1],reverse=True)
# print (sortedCount)
return sortedCount[0][1]
if __name__==\"__main__\":
group,labels=createDataSet()
sort=classify0(group,labels,3,[0,0])
print (\" 类别 \"+str(sort))
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



