七、K最近邻算法

七、K最近邻算法

K最近邻算法(KNN)是一种基于K个相邻数的数据分类和回归的统计方法,属于一种常用的监督学习方法,其基本工作原理为:对于待测试样本,基于某种距离度量找出训练集中与其最靠近的K个训练样本,然后基于这K个“邻居”的信息来进行预测,通常在分类任务中可以使用表决法,即选择这K个样本中出现最多的类别特征标记作为预测结果。也就是说,如果一个待测样本与特征空间中最邻近样本类别的K个最相似的特征中的大多数基本吻合,根据多数表决结果,则待测样本就属于该特征空间中最邻近样本的类别。不难理解,KNN是通过测量不同特征值之间的聚散度和数量进行决策分类,而且只依据最邻近的一个或者几个样本特征的类别来决定待测样本所属的类别。

通俗来说,KNN算法训练集中的数据和标签(特征邻居)都是已知正确分类的对象。(https://www.daowen.com)

在这种情况下,将输入的测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类。那么,这里的一个关键问题就是K值大小的确定。一般来讲需要根据具体的试验设计进行选择,能够满足训练需要即可。如果K值选择过小,容易发生数据过度拟合而受到噪声干扰,导致训练集上准确率很高而测试集上准确率低的非真实结果;如果选取较大的K值,就相当于用较宽泛邻域中的训练数据进行预测,这时与输入的待测样本较远的训练集数据的特征空间(邻居)也将会对预测起作用,使预测结果发生错误。一般情况,K值不应该大于20,而且取整数。