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)懒惰算法,对测试样本分类时的计算量大ÿ