实际上,正如其名,KNN算法通过预测点所在位置附近K个样本点的类别,判断该点的类别。哪种类别的点多,就认为预测点属于哪种类别。
空间中点的距离:
虽然有很多种,比如曼哈顿距离(横纵坐标差的绝对值之和)、欧式距离等,但一般以欧氏距离为主,即。
KNN算法中,最简单的方式就是直接算出预测点与所有点的距离,然后抽出前K近的点,进行比较。
选择K值:
- 近邻点有相同(相近)的类别
- 特征维度的尺度(范围)具有一致性
总结:
+可以处理分类问题,算法简单易懂
+
可以免去训练过程
+
还可以处理回归问题,也就是预测
-
效率低,每一次分类都要对训练数据进行计算
-
对训练数据依赖度特别大,过拟合、欠拟合问题难以权衡
-
维数灾难