import numpy as np
import operator
group =np.array([[1.0,0.0],[1.0,1.0],[0,0],[0,0.1]])
labels=['A','A','B','B']
def classify0(a,b,c,d):
datasetsize=b.shape[0]#表明个数
diffmat=np.tile(a,(datasetsize,1))-b
print(diffmat)
sqdiffmat=diffmat**2
sqdistances=sqdiffmat.sum(axis=1)
distances=sqdistances**0.5
#以上就是根据公式计算距离
sorteddistdicies=distances.argsort()
#将数组值从小到大排序
classcount={}
for i in range(d):
voteilabel = c[sorteddistdicies[i]]
print(voteilabel)
classcount[voteilabel] = classcount.get(voteilabel, 0)+1
print(classcount[voteilabel])
sortedclasscount =sorted(classcount.items(),
key=operator.itemgetter(1),reverse=True)
return sortedclasscount[0][0]
print(classify0([0,0],group,labels,3))
KNN-实现分类问题求解
最新推荐文章于 2022-05-10 14:57:04 发布