机器学习系列----KNN算法

今天,介绍KNN算法。KNN是机器学习算法中相对简单的一种算法,非常容易理解。

     KNN的全称是K-Nearest Neighbor,也称之为K最近邻算法。在网上搜索了很多资料,但是觉得讲的都不太通俗。下面这个个人觉得讲的还是比较通俗易懂的。

     KNN算法的基本思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

    KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。

   K-NN可以说是一种最直接的用来分类未知数据的方法。基本通过下面这张图跟文字说明就可以明白K-NN是干什么的:

机器学习系列----KNN算法_第1张图片

从图中我们可以看到待聚类数据Xu,分别计算Xu到三个类中每个数据的距离,然后去前K(这里是5)个距离最近的距离,然后统计在这K个距离中所属类别数,类别数最多的就是待聚类数据所属类别。如图所示,在Xu的前5个最近距离中有4个属于w1类,1个属于w2类,因此Xu归属到w1类中。

自己写的代码优点Low,就不在这贴出了。

给大家两个链接,非常棒。

http://blog.csdn.net/xlm289348/article/details/8876353 我主要是参考这篇博客

http://blog.csdn.net/zouxy09/article/details/16955347 这是大牛的博客,有详细的python代码,大家可以参考。


你可能感兴趣的:(机器学习系列----KNN算法)