首先,我们需要了解什么是“kNN”
kNN英文全称k Nearest Neighbor,即k近邻算法。
- 用途:分类问题
- kNN的工作原理:事先有一个有标签的样本数据集,然后输入没有标签的新数据后,将新数据的每个特征和样本集里的数据对应特征进行比较,最后算法提取样本集中特征最相似(最近邻)数据的分类标签。一般而言,只取k个最相似数据中出现次数最多的分类作为新数据的分类。
- 优点:精度高、对异常值不敏感、无数据输入假定。
- 缺点:计算复杂度高、空间复杂度高。
- 适用的数据范围:数值型和标称型。
一通文字理解下来后,下面给一个小例子
首先需要了解欧氏距离,很简单,就是平面上的两点之间的距离。
例:点A(x1, y1)与点B(x2, y2)之间的距离为
样本数据集
样本编号 | X | Y | label |
1 | 1.0 | 1.1 | A |
2 | 1.0 | 1.0 | A |
3 | 0 | 0 | B |
4 | 0 | 0.1 | B |
测试数据
编号 | X | Y | label |
1 | 0.1 | 0.1 | 待分类 |
从直观层面上就可以看出测试数据距离B类比