一:引言
上一篇中对knn算法进行了相对的了解,并通过一个十分简单的例子大致了解了knn算法的工作原理和工作流程。本篇将继续对knn算法进行深度的解析,帮助理解knn算法
二:算法解析
1.先简单回顾一下大致的步骤,knn算法可以大致为三个步骤,第一步就是确定k值,就是找与测试点前k个相似的数据,一般取值为不大于20的整数。第二步就是求测试点与样本点的距离。第三部就是按照样本规则来确定测试点属于哪一类。下面是网上找的一张图片。
2.k的取值分析
下面是网上找的一张图片。当k=3时,确定的样本点在图中圆圈的范围内,这时候就自然而然按照统计的规则判断测试点为蓝三角形。
同样k的取值不同也会让结果产生误差,下图是网上找到一张有代表性的图
其中当k为3的时候,按照规则测试点应该划分到红三角的范围,但当k=5的时候测试点又划分到蓝方块的范围内。因此k值的取值应该进行思考。当范围内两种或以上类型的数据点数量相同时,就可以按照距离来划分,下面来讲解距离测试的方法。
3.距离测试
对于knn算法中距离的测试一般用下面的测试方法,测试点用(x,y)表示