KNN-分类算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KNN-分类算法相关的知识,希望对你有一定的参考价值。

参考技术A KNN,K-NearestNeighbor,即K个最近的邻居的意思。对于一个输入样本,用特征上最接近它的K个临近值大多数属于的标签来对它进行分类。KNN是最简单的机器学习算法之一,可以用于分类和回归,是一种监督学习算法。

具体实现过程如下:
①准备数据,对数据进行预处理

在已经分好类的情况下,我们需要对没有分类的物品进行分类 。
②计算测试样本点(也就是待分类点)到其他每个样本点的距离。

其实就是计算(x1,y1)和(x2,y2)的距离。拓展到多维空间,则公式变成这样:

k值是KNN算法的一个参数,K的含义即参考”邻居“标签值的个数。
如果当K的取值过小时,一旦有噪声得成分存在们将会对预测产生比较大影响,例如取K值为1时,一旦最近的一个点是噪声,那么就会出现偏差,K值的减小就意味着整体模型变得复杂,容易发生过拟合;
如果K的值取的过大时,就相当于用较大邻域中的训练实例进行预测,学习的近似误差会增大。这时与输入目标点较远实例也会对预测起作用,使预测发生错误。K值的增大就意味着整体的模型变得简单;
如果K==N的时候,那么就是取全部的实例,即为取实例中某分类下最多的点,就对预测没有什么实际的意义了
在划分好数据集后,我们可以通过交叉验证法来得到最佳的K值

优点:
1.无数据输入假定,在分类完的情况下进行测试
2.预测精度高
3.对异常值不敏感
缺点:
1.时间复杂度和空间复杂度高,计算到每一个点的距离,计算量较大
2.当样本不平衡的时候,比如一个类的样本容量大,另一个类的样本容量很小,对于测试识别的样本来说,投票结果更容易靠近样本容量大的类,从而导致分类错误

以上是关于KNN-分类算法的主要内容,如果未能解决你的问题,请参考以下文章

分类预测 | MATLAB实现KNN分类预测(SA-KNNGOA-KNN对比)

KNN 算法-理论篇-如何给电影进行分类

通过KNN算法,确定球星的风格(很水)

转:机器学习算法原理解析 - 分类

KNN分类算法原理

KNN分类基于matlab模拟退火优化KNN蝗虫算法优化KNN数据分类含Matlab源码 2275期