k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。在分类任务中可使用“投票法”,即选择这k个样本中出现最多的类别标记作为预测结果;在回归任务中可使用“平均法”,即将这k个样本的实值输出标记的平均值作为预测结果;还可基于距离远近进行加权平均或投票,距离越近的样本权重越大。
k近邻是“懒惰学习(lazy learning)”的代表,此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理;相应的,在训练阶段就对样本进行学习处理的方法,称为“急切学习”。
模型由三个基本要素–距离度量、k值的选择和分类决策规则决定。
距离度量