前言
KNN算法系列文章加上总结共六篇笔记,已全部完成。本篇笔记做一个总结,随手再举个西瓜书上的例子。
转载请注明出处:http://blog.csdn.net/rosetta
总结
实际上KNN算法只要把数据准备好给分类函数就可以了。MLiA中的分类函数是classify0(),sklearn中由neigh.fit(normMat, datingLabels)完成,另外注意下前者直接输入待预测数据,后者通过调用neigh.predict()完成,并没有实际区别。从中也可以发现输入参数都是一样的数据类型,都是ndarray。normMat是样本的属性相关的,datingLabels是每个样本对应的标签,两者0维要一样,即有N条样本就要有N条标签,至于属性个数可大可少。
使用KNN算法对西瓜的好坏进行预测
随便就举个例子,西瓜书上第4页有个表1.1西瓜数据集,里面通过西瓜的一些特征判定其是否是好瓜,我们用KNN实现一个用来预测是否是好瓜代码来做个测试,以巩固所学知识。
原始数据如下:
编号 | 色泽 | 根蒂 | 敲声 | 好瓜 |
---|---|---|---|---|
1 | 青绿 | 蜷缩 | 浊响 | 是 |
2 | 乌黑 | 蜷缩 | 浊响 | 是 |
3 | 青绿 | 硬挺 | 清脆 |