k近邻法由Cover和Hart在1968年提出,是一种基本的分类与回归方法。k近邻法的输入是实例的特征向量,对应于特征空间中的点,输出为实例的类别,可取多值(此前介绍的感知机模型只是线性二类分类模型)。k-nearest neighbours(kNN)的基本思想是:在训练集中寻找k个与新的输入实例最接近的实例,构成一个k邻域,并将测试实例归于这个集合中占最大优势的类别。k近邻法中的几个关键要素是:1)一个带类别标注的训练集 2)距离度量方法 3)k值的选择 4)分类决策规则。在极端情形,如k=1时,kNN算法把输入实例的类别等同于距离其最近的训练实例类别;而当k=N时,无论输入的实例是什么,都简单地预测它属于在训练实例中最多的类。
从更广泛的意义上说,kNN是一种基于实例的学习(instance-based learning)。它是一种典型的懒惰学习方法(a lazy learning technique),意思是,直到有新的输入实例(new query)到达时才从训练集中进行泛化,否则它什么也不做,不像感知机那样有明显的学习过程(model-building process)。
kNN算法:</