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

机器学习之K-近邻算法

2017-07-26 11:13 501 查看
KNN源码实现

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

def classify0(inx,dataSet,labels,k):
dataSetSize=dataSet.shape[0]
diffMat=tile(inx,(dataSetSize,1))-dataSet
sqDiffMat=diffMat**2
sqDistances=sqDiffMat.sum(axis=1)
distances=sqDistances**0.5
sortedDistIndicies=distances.argsort()
classCount={}
for i in range(k):
voteIlabel=labels[sortedDistIndicies[i]]
classCount[voteIlabel]=classCount.get(voteIlabel,0)+1
sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
return sortedClassCount[0][0]

if __name__ == '__main__':
group,labels=createDataSet()
print(classify0([0,0],group,labels,3))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习 算法 numpy