基础理论
KNN算法全称是K-最近邻算法,英文名称是K-NearestNeighbor,简称为KNN;从算法名称上,可以猜出,是找到最近的k个邻居,在选取到的k个样本中选取出最近的且占比最高的类别作为预测类别。如下图所示:、
KNN算法的计算逻辑总结:
给定测试对象,计算它与训练集中每个对象的距离;
确定最近的k个训练对象,作为测试对象的邻居;、
根据这k个训练对象所属的类别,找到占比最高的类别作为测试对象的预测类别。
在KNN算法中,你会发现影像KNN算法准确度的因素主要有两个:一是计算测试对象与训练集中各个对象间的距离;二是k的个数的选择。
对于未知类别属性数据集中的点:
1.计算已知类别数据集中的点与当前点的距离
2.按照距离依次排序
3.选取与当前点距离最小的K个点
4.确定前K个点所在类别的出现概率
5.返回前K个点出现频率最高的类别作为当前点预测分类。
存在的问题
K 值的选择,距离度量和分类决策规则是该算法的三个基本要素
问题:该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K 个邻居中大容量类的样本占多数