kNN算法原理剖析
一、kNN算法介绍
kNN算法是由著名学者Cover和Hart在1968年提出来的,是个相对其他算法来讲,比较早的算法,它的工作原理可以这样来理解:对于给定一个训练数据集,对于新的输入实例,在训练数据集中找到与这个新的实例最近的k个邻居,在这k个邻居中,有多数实例属于某个已知的类,那么把这个已知的类作为这个新实例所属的类别。也就是利用投票法(少数服从多数)来决定新实例的类别。注意由于采用的是投票法,因此k值一般取奇数。先来看幅图:
从上面这幅图可以看出,这些数据有两种类别,一个是红色的三角形,另一个是蓝色的正方形,而这个绿色的圆是我们上面讲到的新的实例,现在我们的任务是判别这个新的实例所属的类别。现在根据算法的原理来完成这个任务。
首先,假如选择最近的3个邻居,即k=3,那么通过肉眼也能看到,在这三个邻居中,有两个邻居是三角形这一类,而另外一个是正方形这一类,根据少数服从多数的原则,新的实例的类别应该是三角形。
可以看到这个算法非常的简单,不用训练,现用即可,因此有学者又称其为“懒惰学习”算法,很容易理解。但是这个过程是不是就这样结束了呢?