K 最近邻(KNN,K-Nearest Neighbor)算法是一类在数据挖掘领域常用的分类算法,该算法看似神秘,其实原理很简单,算法实现也很简单。KNN 算法在类别决策时,只参考极少量的相邻样本,也就是说主要靠周围有限的邻近样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本集来说,KNN 方法较其他方法更为适合。这一课我们用 KNN 算法来实现一个简单的手写数字识别程序,看看到底有多简单。
KNN 算法原理
K 最邻近算法(KNN)是一个理论上比较成熟的方法,也是最简单的机器学习算法之一,所谓 K 最邻近(K-Nearest Neighbor),意思是 K 个最相近的邻居。KNN 算法的核心思想是每个样本都可以用与它在特征空间中最接近的 K 个邻居来代表,如果这 K 个最相邻的邻居样本大多数属于某一个类别,那么该样本也属于这个类别。
图(1)KNN 算法的决策示意图
图(1)是用来解释 KNN 的典型示意图,图中的一