机器学习——【3】KNN算法理论

机器学习——【3】KNN算法理论

1. 从案例中说起

一个有关电影分类的例子:

机器学习——【3】KNN算法理论

这是一个根据打斗次数和接吻次数作为特征来进行类型的分类。最后一条的记录就是待分类的数据。

KNN这个分类过程比较简单的一个原因是它不需要创建模型,也不需要进行训练,并且非常容易理解。把例子中打斗次数和接吻次数看成是x轴和y轴,那么就很容易能建立一个二维坐标,每条记录都是坐标中的点。对于未知点来说,寻找其最近的几个点,哪种分类数较多,未知点就属于哪一类。

2. 算法说明

KNN算法的思路是: 如果一个样本在特征空间中的 k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。通常 K 的取值比较小,不会超过 20。

算法步骤为:

  • 计算未知实例到所有已知实例的距离;
  • 选择参数 K;
  • 根据多数表决( majority-voting )规则,将未知实例归类为样本中最多数的类别。
3. 距离的衡量方法

关于距离的测量方式有多种,这里只介绍两种。

欧拉距离
这种测量方式就是简单的平面几何中两点之间的直线距离。

机器学习——【3】KNN算法理论

并且这种方法可以延伸至三维或更多维的情况。它的公式可以总结为:

机器学习——【3】KNN算法理论

曼哈顿距离
顾名思义,城市街区的距离就不能是点和点的直线距离,而是街区的距离。如棋盘上也会使用曼哈顿距离的计算方法:

机器学习——【3】KNN算法理论

4. K 值的选择

K值的选择会影响结果,有一个经典的图如下:

机器学习——【3】KNN算法理论

图中的数据集是良好的数据,即都打好了 label ,一类是蓝色的正方形,一类是红色的三角形,那个绿色的圆形是待分类的数据。

    1. = 3 时,范围内红色三角形多,这个待分类点属于红色三角形。
    1. = 5 时,范围内蓝色正方形多,这个待分类点属于蓝色正方形。

如何选择一个最佳的K值取决于数据。一般情况下,在分类时较大的 K 值能够减小噪声的影响,但会使类别之间的界限变得模糊。因此 K 的取值一般比较小 ( K < 20 )。

改进

在下面一种情况中:

机器学习——【3】KNN算法理论

在点Y的预测中,改范围内三角形分类数量占优,因此将Y点归为三角形。但是从视觉上观测,应该是分为圆形分类更为合理。根据这种情况就在距离测量中加上权重,比如 1/d (d: 距离)。

5. KNN 的优缺点

优点:

  • 简单,易于理解,无需建模与训练,易于实现;
  • 适合对稀有事件进行分类;
  • 适合与多分类问题,例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。

缺点:

  • 惰性算法,内存开销大,对测试样本分类时计算量大,性能较低;
    ,例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。
  • 可解释性差,无法给出决策树那样的规则。