首页 > 代码库 > 后端程序员之路 12、K最近邻(k-Nearest Neighbour,KNN)分类算法

后端程序员之路 12、K最近邻(k-Nearest Neighbour,KNN)分类算法

K最近邻(k-Nearest Neighbour,KNN)分类算法,是最简单的机器学习算法之一。
由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。
该算法的功能有:
从目标区域抽样计算欧式或马氏距离;
在交叉验证后的RMSE基础上选择启发式最优的K邻域;
计算多元k-最近邻居的距离倒数加权平均。

机器学习(一)——K-近邻(KNN)算法 - oYabea - 博客园
http://www.cnblogs.com/ybjourney/p/4702562.html

k-近邻算法的初步研究 - 清山的日志 - 网易博客
http://blog.163.com/linfenliang@126/blog/static/127857195201472462736764/

然而KNN因为计算量相当的大,所以相当的耗时,Ko与Seo提出一算法TCFP(text categorization using feature projection),尝试利用特征投影法来降低与分类无关的特征对于系统的影响,并借此提升系统效能,其实实验结果显示其分类效果与k最近邻居法相近,但其运算所需时间仅需k最近邻居法运算时间的五十分之一

除了针对文件分类的效率,尚有研究针对如何促进k最近邻居法在文件分类方面的效果,如Han等人于2002年尝试利用贪心法,针对文件分类实做可调整权重的k最近邻居法WAkNN (weighted adjusted k nearest neighbor),以促进分类效果

而Li等人于2004年提出由于不同分类的文件本身有数量上有差异,因此也应该依照训练集合中各种分类的文件数量,选取不同数目的最近邻居,来参与分类。

总结:
1、定义k值,一般小于20
2、计算欧氏距离或者曼哈顿距离
3、最近的k个点的类型来确定样本类型

后端程序员之路 12、K最近邻(k-Nearest Neighbour,KNN)分类算法