习题为例学习K近邻简单实现

来源:互联网 发布:mac程序文件夹在哪里 编辑:程序博客网 时间:2024/06/05 04:18

问题来源

p42 3.2把前三点归为红点,后三点归为绿点,对习题3.2中点进行分类

代码

# _*_ coding: utf-8 _*_import numpy as npimport operator#训练集创建def DataSet():    group = np.array([[2,3],[5,4],[9,6],[4,7],[8,1],[7,2]])    #六组二维特征    labels = ['红点','红点','红点','绿点','绿点','绿点']    return group, labels#做分类结果def classify(Cet,Data,labels,k):    classcount = {}    Datasize = Data.shape[0]    Chazhi = np.tile(Cet,(Datasize,1)) - Data    Pingfang = Chazhi**2    Qiuhe = Pingfang.sum(axis = 1)    distances = Qiuhe**0.5    sorteddistances = distances.argsort()    for i in range(k):        labelcount = labels[sorteddistances[i]]        classcount[labelcount] = classcount.get(labelcount,0) + 1        sortedclasscount = sorted(classcount.items(),key=operator.itemgetter(1),reverse=True)        return sortedclasscount[0][0]if __name__=='__main__':    group, labels = DataSet()    test = [3,4.5]    test_class = classify(test,group,labels,5)    print(test_class)

分类结果

分类结果

原创粉丝点击