数据挖掘算法:KNN
作者头像
  • 谭金影
  • 2018-08-23 22:43:03 0

引言

本文探讨的是监督学习中的kNN算法。在监督学习中,训练数据包含已知的类别标签,而非监督学习则没有。监督学习的目标是从输入数据中学习一个模型,以便对新输入的数据进行预测。这种学习可以应用于连续变量或离散变量的输入和输出。

如果输入和输出都是连续变量,这种方法被称为回归;如果输出是有限的离散变量,则称为分类;如果是变量序列,则称为标注。

kNN算法

kNN算法的核心理念是:在训练集中选择与待预测数据点最近的k个邻居,然后根据这k个邻居中出现频率最高的类别来预测该数据点的类别。

算法描述

假设训练集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中每个样本点的类别yi属于{c1,c2,⋯,cK}。输入待预测的数据点为x,预测类别为y=f(x)。

k邻域记为Nk(x),当yi=cj时指示函数I=1,否则I=0。

分类决策规则

kNN的学习模型是输入X,通过学习得到一个决策函数:输出类别Y=f(X)。分类损失函数采用0-1损失函数,即分类正确时不产生损失,分类错误时产生1单位的损失。

如果预测类别为cj,那么kNN模型的误分类率为:

为了最小化误分类率,需要选择适当的k值。

存在问题

k值的选择对kNN算法影响很大。如果k值过小,模型容易受到噪声样本点的影响。相反,如果k值过大,虽然可以减少噪声的影响,但可能会引入距离较远的样本点,从而导致预测结果不准确。

此外,k邻域内的样本点对预测结果的贡献度通常是均等的,但实际上距离更近的样本点应该具有更高的相似度,因此贡献度也应更大。可以通过引入权重wi=1/∥xi−x∥来调整这一问题。

参考资料

  • Michael Steinbach 和 Pang-Ning Tan,《数据挖掘十大算法》
  • 李航,《统计学习方法》

希望以上内容对你有所帮助,欢迎分享给更多的人。

    本文来源:图灵汇
责任编辑: : 谭金影
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
数据挖掘算法KNN
    下一篇