定义:给定一个训练数据集,对新的数据实例,在训练数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类(可以取多类)。
近邻法是一种基本的分类与回归方法,k近邻算法没有显示的学习过程,其实际上利用训练数据集对特征向量的空间进行划分,并作为其分类的“模型”,模型的三个基本要素为:k值的选择,距离度量,分类决策规则决定。k=1时称为最近邻算法。
模型的三个基本要素:
k值的选择
k值较小,”学习“的近似误差会减小,只有与输入实例较近的(相似的)的实例才会对预测结果起作用,估计误差会增大,预测结果会对近邻的实例点非常敏感。换句话说,k值的减小意味着整体模型变得复杂,容易发生过拟合。
k值较大,”学习“的近似误差会增大,估计误差会减小。这时与输入实例较远的(不相似的)训练实例也会对预测起作用。k值的增大意味着整体模型变得简单
在应用中,k值一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值,在《机器学习实战》一书中指出参数k的取值一般通常不大于20。
距离度量
- 特征空间中两个实例点的距离是两个实例点相似程度的反映。kNN中一般使用的是欧式距离,以及更一般的Lp距离等。
- Lp距离
Lp(xi,xj)=(∑l=1n|x(l)i−x(l)j|p)1/p
- 当p=2时,称为欧式距离
Lp(xi,xj)=∑l=1n|x(l)i−x(l)j|2−−−−−−−−−−−−√
- 当p=1时,称为曼哈顿距离
Lp(xi,xj)=∑l=1n|x(l)i−x(l)j|
- 当p=无穷时,他是各个坐标距离的最大值
Lp(xi,xj)=maxl|x(l)i−x(l)j|
- Lp距离
分类决策规则决定
K近邻法中的分类决策规则往往是多数表决,即由输入实例的k个紧近邻的训练实例中的多数类决定输入实例的类决定输入实例的类,对应于经验风险最小化。
另一个决策规则为加权投票法,根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)
其它
行业应用
- 客户流失预测、欺诈侦测等(更适合于稀有事件的分类问题)
优缺点
优点
简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型)
特别适合于多分类问题(multi-modal,对象具有多个类别标签)缺点
懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢
可解释性较差,无法给出决策树那样的规则。
补充
- 近似误差与估计误差区别:近似误差侧重于训练,估计误差侧重于测试
参考
- 《统计学习方法》李航.清华大学出版社
- 博客.KNN算法理解:http://blog.csdn.net/jmydream/article/details/8644004
- 博客.大数据竞赛平台——Kaggle 入门:http://blog.csdn.net/u012162613/article/details/41929171