KNN 的工作原理

“近朱者赤,近墨者黑”可以说是 KNN 的工作原理。整个计算过程分为三步:

  1. 计算待分类物体与其他物体之间的距离;
  2. 统计距离最近的 K 个邻居;
  3. 对于 K 个最近的邻居,它们属于哪个分类最多,待分类物体就属于哪一类。

K 值如何选择

如果 K 值比较小,就相当于未分类物体与它的邻居非常接近才行。这样产生的一个问题就是,如果邻居点是个噪声点,那么未分类物体的分类也会产生误差,这样 KNN 分类就会产生过拟合。

如果 K 值比较大,相当于距离过远的点也会对未知物体的分类产生影响,虽然这种情况的好处是鲁棒性强,但是不足也很明显,会产生欠拟合情况,也就是没有把未分类物体真正分类出来。

所以 K 值应该是个实践出来的结果,并不是我们事先而定的。在工程上,我们一般采用交叉验证的方式选取 K 值。

交叉验证的思路就是,把样本集中的大部分样本作为训练集,剩余的小部分样本用于预测,来验证分类模型的准确性。所以在 KNN 算法中,我们一般会把 K 值选取在较小的范围内,同时在验证集上准确率最高的那一个最终确定作为 K 值。

距离的计算方式

在knn 中. 距离越大, 差异性越大. 距离越小, 差异性越小

距离的计算方式有下面5种, 常用的是前3种

  1. 欧式距离
  2. 曼哈顿距离
  3. 闵可夫斯基距离
  4. 切比雪夫距离
  5. 余弦距离