K-NN算法相对而言是一种比较简单的算法。对新输入的实例,在训练集中找到与该实例最邻近的k个实例,这k个实例最多属于那个类就把新输入的实例划分为这个类。这种算法可以理解利用最近的k个实例进行投票,以少数服从多数原则把新进来的实例划分为跟多数实例相同的类别。
举个例子:
![fbcb4e79250e521c4326e563b9cae674.png](https://i-blog.csdnimg.cn/blog_migrate/88001ecaecee2518756f8f7137aef1dc.png)
由图可知,当k取3时,最近的三个样本中有两个是三角形,于是我们将输入实例的类别划分成三角形。当k取5时,最近的五个样本中有三个是正方形,于是我们将输入实例的类别划分成正方形。可见K值的不同会导致划分结果的不同。可以用以下公式判断新输入的x的类别y。
![2f91ec804117ddbb97b4756a4656ba7c.png](https://i-blog.csdnimg.cn/blog_migrate/d33c83705677cb44d4d18e7848ba93a3.png)
这个公式用上面的例子来理解,