博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习实战、第二章KNN算法详解、AttributeError: ‘dict‘ object has no attribute ‘iteritems‘
阅读量:4073 次
发布时间:2019-05-25

本文共 1591 字,大约阅读时间需要 5 分钟。

机器学习实战、第二章KNN算法详解、AttributeError: ‘dict’ object has no attribute ‘iteritems’

  • python3.5后代码存在问题AttributeError: ‘dict’ object has no attribute ‘iteritems’
    在这里插入图片描述

原因:Python3.5中:iteritems变为items。

解决办法:iteritems变为items即可。
在这里插入图片描述

  • KNN算法详细的代码及注释:
from numpy import *import operatordef creatDataSet():    #可以看做4行一列的二维数组    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])    labels = ['A','A','B','B']    return group,labelsgroup,labels=creatDataSet()#inx是待分类的数据,dataSet是上面的group,lables是上面的,K自己设定的值def classify0(inx,dataSet,labels,k):    # 有多少组数据,上面的group中有4组    dataSetSize = dataSet.shape[0]    #用tile将inx复制4个一模一样的,然后减去dataset,相当于见(x1,y1)与(x2,y2)做差    diffMat = tile(inx,(dataSetSize,1))-dataSet    #上面的一行是进行了做差,这行是进行做差后的平方    sqDiffMat= diffMat**2    # axis=1是列相加,,得到了(x1-x2)^2+(y1-y2)^2    sqDistance=sqDiffMat.sum(axis=1)    #用的是欧式距离,然后进行开根号    distance=sqDistance**0.5    #argsort是排序,将元素按照由小到大的顺序返回下标,比如([3,1,2]),它返回的就是([1,2,0])    sortedDistIndicies=distance.argsort()    classCount={}    for i in range(k):        #依次取前K个的标签        voteIlable = labels[sortedDistIndicies[i]]        # get是取字典里的元素,如果之前这个voteIlabel是有的,那么就返回字典里这个voteIlabel里的值,        # 如果没有就返回0(后面写的),这行代码的意思就是算离目标点距离最近的k个点的类别,这个点是哪个类别哪个类别就加1        classCount[voteIlable] = classCount.get(voteIlable,0)+1    # key=operator.itemgetter(1)的意思是按照字典里的第一个排序,{A:1,B:2},要按照第1个(AB是第0个),    # 即‘1’‘2’排序。reverse=True是降序排序    sortedClassCount = sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)    #返回K值最大的预测标签    return sortedClassCount[0][0]print(classify0([0,0],group,labels,3))

算法运行结果(因为输入[0,0],k取3,所以前3个中有两个B一个A,取最多的,所以结果就是B):

在这里插入图片描述

转载地址:http://hvgji.baihongyu.com/

你可能感兴趣的文章
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>
iOS获取手机的Mac地址
查看>>