1. KNN算法
KNN算法又称为k最邻近算法(k-Nearest Neighbour),是一种出现较早且原理比较简单的机器学习算法。其基本思想就是根据距离待分类数据A最近的k个样本数据的分类来预测A可能属于的类别。基本的计算步骤如下:
- 计算待分类数据与样本集中每一个样本之间的距离(欧式距离、马氏距离等);
- 找出距离最近的k个样本;
- 观测这k个样本的分类情况;
- 将出现次数最多的类别作为待分类数据的类别。
KNN算法的优点是原理简单,易于实现,在多分类问题中能取得较好的结果;缺点是计算量较大,需要计算待测数据与每一个样本数据的距离,而且容易受到样本分布的影响,当样本不平衡时很容易产生错误分类。
2. R中的KNN
class包中提供了KNN的相关算法,包括knn,knn1(k取1时的knn),还有改进的算法knn.cv,kknn等函数,调用起来非常方便。本文主要介绍一下如何手工实现最基本的KNN算法。自己实现算法的过程能够加深对算法的理解,同时也能锻炼一下编写代码的能力,是快速提升个人能