kNN
k邻近,k-Nearest Neighbor,kNN;是懒惰学习(lazy learning)的代表。所谓懒惰学习就是没有没有显式训练过程,只是把训练数据保存起来,用的时候直接再算出结果就行了。具体算法如下:
给定测试样本,基于某种距离度量找出训练集中与最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测;若是分类问题就可以用投票法确定最后的结果,若是回归问题就可以用平局法。但是最后结果跟k选取有关系:
可以看出k=1的时候,判定为+,为3的时候判定为-,为5的时候判定又为+。
给定测试样本x,若其最近邻样本为z,则最近邻分类器的出错概率为:
P(err)=1−∑c∈YP(c|x)P(c|z)
假设样本独立同分布,且对任意x和任意小的正数 δ ,在x附近 δ