本系列代码托管于:https://github.com/chintsan-code/machine-learning-tutorials

本篇使用的项目为:knnDemo

classify0这个方法其实就是计算两个两个特征点之间的欧氏距离(L2距离),这里需要一些numpy基础:

numpy.array.shape[0] # 获取array的row,相对的shape[1]是获取column
numpy.tile # https://www.jianshu.com/p/9519f1984c70
numpy.sum # https://www.jianshu.com/p/7cf1f32981c5

总结一下knn的步骤

  1. 求待分类点与各个样本点的欧氏距离;
  2. 将该距离按从小到大排序;
  3. 取距离最小的k个值;
  4. 统计这些距离对应的样本点的标签,按少数服从多数的原则,确定待分类的属于哪一类标签。

ps:k并不是指有多少类别,而是要取多少个距离来统计