机器学习实战之K-近邻算法(一)

跟着《机器学习实战》书中代码进行实现时所踩的坑,给大家提个醒哈~

 

问题1


来源:从文本文件中解析数据
描述:classify0(inX, dataSet, labels, k)中,sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1), reverse = True)编译通不过,
报错:AttributeError: 'dict' object has no attribute 'iteritems'
解决办法:将函数中的classCount.iteritems()改成classCount.items()
原因:书中所用代码为python2,而我使用的是python3,python3中有改动

 

问题2


来源:使用k-近邻算法改进约会网站的配对效果-准备数据:从文本文件中解析数据
描述:file2matrix(filename)中,classLabelVector.append(int(listFromLine[-1]))编译不过
报错:ValueError: invalid literal for int() with base 10: 'largeDoses'
解决办法:将file2matrix('datingTestSet.txt')改成file2matrix('datingTestSet2.txt'),并保证file2matrix('datingTestSet2.txt')在对应目录下
原因:根据从网上下载的数据,对比datingTestSet.txt和datingTestSet2.txt中的数据,可知代码中导入的应该是datingTestSet2.txt,而datingTestSet.txt中的第四列是未作处理前的数据,有兴趣的可以自己写段脚本将第四列转换成标签,可得到datingTestSet2.txt中的内容

 

问题3


来源:使用k-近邻算法改进约会网站的配对效果-使用算法:构建完整可用系统
描述:classifyPerson()中,percentTats = float(raw_input("percentage of time spent plating video games?"))等多处含raw_input的地方都编译通不过,
报错:NameError: name 'raw_input' is not defined
解决办法:将函数中的raw_input改成input
原因:书中所用代码为python2,而我使用的是python3,raw_input是python2中用法,在python3中用input来替代它

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值