美文网首页
K-最近邻(K-nearest neighbors, KNN)

K-最近邻(K-nearest neighbors, KNN)

作者: MJades | 来源:发表于2020-02-19 21:54 被阅读0次
  • KNN通常用于不知道给定预测因子下响应变量条件分布的情况,这时无法使用贝叶斯分类器预测定性响应。
  • KNN属于懒惰学习(lazy learning),即没有训练阶段,数据集事先已有了分类和特征值,待收到新样本后直接进行处理。
  • KNN是通过测量不同特征值之间的距离进行分类,常用的是欧几里得距离。
    R语言中class和kknn两个包可以实现KNN, kknn包可以处理带有因子型变量的数据集。

过程:

  1. 计算测试数据与各个训练数据之间的距离;(新的数据点一般用“?”表示)
  2. 按照距离的递增关系进行排序;
  3. 选取距离最小的K个点;
  4. 确定前K个点所在类别的出现频率;
  5. 返回前K个点中出现频率最高的类别作为测试数据的预测分类。

注意:

  1. 计算距离之前,要对数据进行scale,使所有的变量在一个可比的尺度上;
  2. 在二元匹配问题上,K选择奇数;
  3. K值不能是分类数据的倍数;
  4. KNN容易消耗内存;
  5. 它对异常值不灵敏,能适应分类数据中的错误。

参考

  1. https://www.jianshu.com/p/5f77c63dd3d0

相关文章

网友评论

      本文标题:K-最近邻(K-nearest neighbors, KNN)

      本文链接:https://www.haomeiwen.com/subject/pqjzfhtx.html