Knn (k-Nearest Neighbor)
一、算法描述
一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离的度量方式(欧氏距离、闵氏距离、曼哈顿距离等)找出训练集中与该样本距离最近的前k个训练样本,并依据k个“邻居”的样本信息进行预测。属于懒惰学习方法[1]。
[1]:懒惰学习(lazy learning)训练阶段仅仅保存样本,训练时间开销为0,待新样本得到后再进行处理;相应的,急切学习(eager learning) 在训练阶段就对样本进行学习处理的方法
二、算法要点
1、距离的度量
欧氏距离、Minkowski距离、曼哈顿距离
参见:
http://www.cnblogs.com/wentingtu/archive/2012/05/03/2479919.html
2、K值选取
K值选取较大,即使用较大邻域内的训练实例进行预测,可以减少学习估计误差,但近似误差会增大;与样本距离较远的训练样本也会对预测结果有影响;
K值选取较小,则近似误差会减小,估计误差会增大;与样本距离较近的训练样本才会对预测结果有影响;预测结果对近邻的训练样本会很敏感。
一般来说,K值取一个比较小的值,通常采用交叉验证法来选择。
3、类别判定
投票法:在分类预测中,