美文网首页
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