机器学习实战——k-近邻算法
我是在Spyder上进行,主要记录我在学习中遇到的一些问题,有些也许很低级,但我希望可以通过这种方式进步,这也是我第一次写,有些不足之处也希望大家可以提出。
1.kNN模块的导入–import kNN
Spyder上路径没选对,要选成kNN.py所在的文件夹位置
2.print的括号问题
Python2打印时可以不加括号:print ‘hello world’, Python3则需要加括号 print(“hello world”),所以加上括号就ok了。
3.出现:AttributeError: ‘dict’ object has no attribute ‘iteritems’
这是因为Python3中不再支持iteritems(),将iteritems()改成items()
4.reload (kNN)显示:NameError: name ‘reload’ is not defined
我用的是python 3.6版本的
import importlib
importlib.reload(kNN)
本章总结
k-近邻算法的步骤:计算输入无标签的数据与训练数据之间的距离,按降序排列,得到前k个离输入点距离最近的训练数据标签,出现频率最高的即为输入数据的标签。在计算距离过程中,如果数据的几个特征值范围在(0,1)外要进行归一化,不然不能做到对每个特征一视同仁。