本系列文章由孙旭编辑,转载请注明出处
http://blog.csdn.net/longyindiyi/article/details/20068781
多谢合作!
今天介绍模式识别中另外一种经典的分类器算法—— K近邻分类器(K-nearest neighbor,KNN)。
俗话说:“物以类聚,人以群分”。KNN 就是利用了这样一种思想发展起来的分类器。
关于 KNN 分类器,首先,它是一种基于距离的分类器,其次,它也是一种“懒人”分类方法(不需要训练)。
从方法论角度出发, KNN 认为,待分类对象的类别可以通过在它附近的训练数据的类别来确定,所以采取的策略就是找到离待分类对象最近的 K 个邻居进行分析。
在 KNN 的设计过程中,有四个要点需要注意:
- 用来对待分类对象所属类别进行评估的数据集合(不一定需要用到整个训练集);
- 用来计算对象之间相似度的距离或者相似度矩阵(比如,欧式距离,马氏距离等);
- K 值的选取;
- 用来确定待分类对象所属类别的方法(比如,距离加权与否)。
KNN 分类器的算法描述如下所示:
上图取自《The top ten algorithms in data mining》
上述算法描述中确定其最终分类判别的公式可以根据实际需要稍作调整。
实际中也有可能出现由不同类别算出的相似度相同的情况,这个时候可以采取随机决策,或者给训练集中数量占优的那一类(以贝叶斯观点来看,就是在似然函数相同情况下,采信先验概率较大的那一类)。
这类算法的优点就是简单,可以绕过训练阶段,但是在训练数据集数量比较大时,会加剧识别过程的时间开销。