KNN算法是数据挖掘中应用于分类的比较简单的一种算法,也是一种基于实例的算法。
工作原理(通俗):建立一个d维空间,d就是属性的个数,训练集中的类标号就在该d维空间中,给定一个测试样例,根据属性找到在d维空间的位置,然后画一个半径为k的圆,在圆内中属于包含哪些类就是哪一类。最关键点就在于k的取值,若太大则会产生误分类,太小可能会受到噪音带来的影响
接下来这段代码是机器学习与实践上的关于KNN的算法,是关于通过输入约会对象的三个特征值,预测对他的期望值。我加上了一些注释更助于理解代码:
1:首先是KNN算法,计算输入向量INX 与训练集dataSet中各个点的距离,然后将距离按从小到大排列,选取前K个值,最后返回频率最高的类标签