KNN 算法综述

下面来简单介绍一下现在比较常用的KNN算法,具体如下:

计算机分类在生活中已经运用广泛,在商业经营中,政府决策管理中,科学研究中和工业中等多个领域都有运用。 现在的人们对计算机、手机之类的设备感兴趣,比如手机中的人脸、图片识别,模式识别,扫码,计算机中的空间分类,文本分类,决策树分类(kd-tree),贝叶斯分类,KNN 分类,人工神经网络等技术。

KNN(K-nearestneighbor),即 K-邻近算法是由 Cover和 Hart 于 1968 年提出。所谓 K 最近邻,就是 K 附近的邻居的意思,说的是每个样本都可以用它最接近的 K 个邻居来代表。比如将 20 万张猫的图片和 20 万张狗的图片,输入到计算机让它学习,每一张都不要重复。 训练成功后,你就可以随意选一张图片,让它识别,它就会在它储存 40 万张照片中,判断与它储存的形状最接近的一个,最后显示出结果。

KNN 算法综述_第1张图片

圆圈就像 20 万张猫的图片,方块就像 20 万张狗的图片,以此类推。 X 就相当于你想识别的对象,这时计算机就会将与它距离最近的对象识别出来,给出最终的结果。 再打个比方,我们都说物以类聚,人以群分,判别一个人有什么样的品质特征,常常可以通过他身边的朋友来入手。 KNN 算法也类似,如果我们想判断圆圈属于哪一类数据。若以圆圈为圆心,半径为 3 画圆,圆圈圈中的三个样本,三角形样本数量最多,那么就将圆圈视为三角形一类。

KNN 算法自身操作简略、有效,易于了解,易于完成,无需预计参数,也无需训练。 它适宜对时间进行分类,尤其适合于多分类问题(multi-modal,即此对象具备多个类别)。 它是一种lazy-learning,也就是惰性学习。 这种分类器不需要应用训练及进行训练,也就是训练时间复杂度为 0,你只需要输入大量样本,计算机就会进行分类,再输入一个新的样本,它就会识别出来。

KNN 分类的计算复杂度和训练集中的文档数目成正比,打个比方,假如你输入了一些关于手机的照片,你输入的图片数量越少,它识别的速度也随之变快。 但这个算法有不足之处,就是计算量较大。 因为计算机需要计算出每一个已知的样本与待分类对象之间的距离,才能得出它的近邻。 KNN 算法还可以回归,或者说成预测。 通过找出待识别对象的几个近邻,求出这些近邻的平均值,将这个平均值赋给待分类对象,就可以知道这个对象的属性。 还有另外一种方法,就是将不同距离的近邻对该对象所产生的影响给予不同的权值(权值,就是加权平均数中每个数的频数),权值与距离成反比。 这种算法仍有不足之处, 当样本数量不平衡时, 即一种样本容量很大, 而其他几种容量很小时, 有可能会导致输入一个新样本时,该样本的近邻中容量大的样本所占多数,就会产生误差。

总的来说,KNN 算法是非常有效和容易完成的,是最好的文本分类算法之一,在机器学习分类算法中占有相当大的位置,是最简略的机器学习算法之一,它用于分类、回归和模式识别等技术。

 

你可能感兴趣的:(算法处理)