MATLAB从入门到精通系列之如何实现KNN算法
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
- 点赞
- 收藏
- 关注作者
评论(0)