1. KNN原理
K最近邻(kNN,k-NearestNeighbor)分类算法是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
该方法的具体思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
简单点说就是,有一个向量化的样本库,每个样本都有一个标签标识类别,输入一个未知分类的样本,向量化之后跟样本库一一比对计算方差,取方差最小的topN的样本库的样本的分类标签,用这N个标签的类别代表输入样本的类别。
下面以一个验证码识别的案例详细说明一下KNN的使用。
2.案例
![394c15cb24f1bd61b80ca9227a7404f1.png](https://img-blog.csdnimg.cn/img_convert/394c15cb24f1bd61b80ca9227a7404f1.png)
Fig.1 验证码图片示例
我们选取Fig.1中所示的样例图片进行识别。该