每个样本都可以用它最接近的K个邻值来代表 将数据集合中每一个记录进行分类的方法

定义一个X=data,把最有可能影响因素抽取

总体来说,KNN分类算法包括以下4个步骤:[4]
①准备数据,对数据进行预处理[4] 。
②计算测试样本点(也就是待分类点)到其他每个样本点的距离[4] 。
③对每个距离进行排序,然后选择出距离最小的K个点[4] 。
④对K个点所属的类别进行比较,根据少数服从多数的原则,将测试样本点归入在K个点中占比最高的那一类[4] 。

优点
KNN方法思路简单,易于理解,易于实现,无需估计参数,无需训练[5] 。

缺点
该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数[6] 。
该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点[6] 。

改进
目前对KNN算法改进的方向主要可以分为4类:[7]
一是寻求更接近于实际的距离函数以取代标准的欧氏距离,典型的工作包括 WAKNN、VDM[7] ;
二是搜索更加合理的K值以取代指定大小的K值典型的工作包括SNNB、 DKNAW[7] ;
三是运用更加精确的概率估测方法去取代简单的投票机制,典型的工作包括 KNNDW、LWNB、 ICLNB[7] ;
四是建立高效的索引,以提高KNN算法的运行效率,代表性的研究工作包括 KDTree、 NBTree。还有部分研究工作综合了以上的多种改进方法