KNN算法简介
KNN(K Nearest Neighbor)算法
一、算法思想:
假设一个样本空间里的样本分成几个类型[1],然后给定一个待分类的数据,通过计算距离该数据最近的K个样本来判断这个待分类数据属于哪个分类。简单的说,就是由那些里自己最近的K个样本点投票决定待分类数据归为哪一类。
二、实例说明:
下图中有两种类型的样本数据,一类是蓝色的正方形,另一类是红色的三角形,中间那个绿色的圆形是待分类数据;
图 1 KNN算法示例
如果K=3,那么离绿色点最近的有2个红色的三角形和1个蓝色的正方形,这三个点进行投票,于是绿色的待分类点就属于红色的三角形。
如果K=5,那么离绿色点最近的有2个红色的三角形和3个蓝色的正方形,这五个点进行投票,于是绿色的待分类点就属于蓝色的正方形。
三、算法描述
KNN算法的步骤可以描述为[2]:
1、计算出样本数据和待分类数据的距离;
2、为待分类数据选择K个与其距离最小的样本;
3、统计出K个样本中大多数样本所属的分类;
4、这个分类就是待分类数据所属的分类。
四、注意事项:
K应该设置为一个奇数,这样可以保证投票的时候不会有平票。
参考文献:
[1] 《K Nearest Neighbor 算法》 http://coolshell.cn/articles/8052.html
[2] 《数据挖掘之分类 (KNN算法的描述及使用)》 http://ahuaxuan.iteye.com/blog/164435