12.23 k最近邻法

k最近邻法(k-nearest neighbours, k-NN)模型由Fix 和Hodges于1951年提出,是模式识别和学习机中最基础的模型之一。k最近邻法用于模式识别时的基本原理较简单,其分类依据是基于特征空间中与待测样本最邻近的k个训练集样本的归属(投票数),如图12-37所示。

kNN在实际使用中一般采用改进后的加权投票法,即:

{V_{sample}} = \sum {{V_i}/{D_i}}

其中{D_i}(i = 1,2, \cdots ,k)是待测样本与k个最邻近样本之间的距离函数,Vi为第i个近邻样本的投票(分类预测)。加权方法引入了对样本间距离影响程度的度量,并且避免了k个不同分类样本的投票数相同时所导致的分类困难,因此提高了结果的可靠性(图12-38)。ChemPattern所采用的kNN方法即为加权法。

图12-37 k最近邻法决策过程
上图演示了kNN分类的基础原理以及不同k值对分类预测结果的影响。当k=3和k=6时,对于以三角形符号标识的待测样本而言,以红色和蓝色圆形符号标识的不同类别的训练集样本分别胜出,投票数比例依次为2:1和2:3。

k最近邻法与线性模型

在模式识别中,K最近邻法和线性模型(线性学习机)是最基础的学习方法,很大一部分的统计学习算法本质上都是对k最近邻法和线性模型的各自扩展。二者具有以下一些异同点:

图12-38 k最近邻法不同参数的比较
从左至右,从上至下:
图1:线性不可分的两个分类的样本分布示意图;
图2:样本的最小二乘线性判别结果;
图3:样本的kNN模式识别结果,k=1;
图4:样本的kNN模式识别结果,k=3;
图5:样本的kNN模式识别结果,k=15;
图6:样本的kNN模式识别结果,k=15,加权投票。
由图3至图5可见随着k值的增大判定边界逐渐模糊,由图6可观察到加权投票法提高了靠近训练集样本的局部区域内的判别准确性。

k最近邻法还具有以下特点以及在应用中需要注意的事项: