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

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

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

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

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

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


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


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

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



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值