MATLAB从入门到精通系列之如何实现KNN算法

举报
格图洛书 发表于 2021/11/19 00:22:42 2021/11/19
【摘要】      KNN算法又称为k近邻分类(k-nearest neighbor classification)算法,它将样本分到离它最相似的样本所属的类。该算法的本质上采用模板匹配的思想,要确定一个样本的类别,通过计算它与所有训练样本的距离来找出和该样本最接近的k个样本,统计这些样本的类别进行投票,票...

     KNN算法又称为k近邻分类(k-nearest neighbor classification)算法,它将样本分到离它最相似的样本所属的类。该算法的本质上采用模板匹配的思想,要确定一个样本的类别,通过计算它与所有训练样本的距离来找出和该样本最接近的k个样本,统计这些样本的类别进行投票,票数最多的那个类就是分类结果。

kNN算法概述  

 1.KNN算法描述

    (1)初始化训练集和类别;

    (2)计算测试集样本与训练集样本的欧氏距离;

    (3)根据欧氏距离大小对训练集样本进行升序排序;

    (4)选取欧式距离最小的前K个训练样本,统计其在各类别中的频率;

    (5)返回频率最大的类别,即测试集样本属于该类别。

2.优缺点


    1)优点
    (1) 简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型);
    (2)特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。
    2)缺点
    (1)懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢;

    (2)可解释性较差,无法给出决策树那样的规则。

3.常见问题


    1)k值设定为多大?
    (1)k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。&#x

文章来源: wenyusuran.blog.csdn.net,作者:文宇肃然,版权归原作者所有,如需转载,请联系作者。

原文链接:wenyusuran.blog.csdn.net/article/details/110523572

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。