k-Nearest Neighbors(KNN)算法—原理篇

前一阵子,在学习机器学习参考资料《Machine learning in action》,一本以python语言为主。python比较简单,写算法比较灵活,对数组矩阵的计算形式调用较为简单。

第一个机器学习的例子,就是kNN,它是一个简单的机器学习模型,容易理解而且效率高。原理和它的想法都很简单:用距离来分类的方法,计算待分类样例与已知所有分类样例的距离,对结果进行排序,找出最小距离的前k个结果,对k个结果进行投票统计,得票最多的就是属于那一类。

问题来了是什么距离作为衡量标准,我们知道距离有欧氏距离,马氏距离还是欧氏距离?它采用的是欧氏距离。

举个例子,它是怎么做的,也行就明白为什么选择欧氏距离。

书中用的例子:要对一个电影进行分类,看它是属于哪个类别的。比如,已知下表:

k-Nearest Neighbors(KNN)算法—原理篇_第1张图片

我们想知道一个电影XX是属于罗曼题材还是动作题材的,于是我们计算XX与上表中已知电影的各个距离,如下表:

k-Nearest Neighbors(KNN)算法—原理篇_第2张图片


加入k= 3 ,从上面的表格看到前3个距离最小的都是属于Romance,即XX就是罗曼题材的电影。

原理部分已经完成。送上欧式距离的计算方法:

k-Nearest Neighbors(KNN)算法—原理篇_第3张图片



你可能感兴趣的:(knn)