机器学习——KNN算法学习

一、KNN算法简介:
用一句通俗易懂的话来形容KNN算法,便是:“近朱者赤,近墨者黑”。为什么这么说呢?看看它的的算法原理吧。
算法原理:计算测试样本与每个训练样本的距离(距离计算方法见下文),取前k个距离最小的训练样本,最后选择这k个样本中出现最多的分类,作为测试样本的分类。如图所示,绿色的为测试样本,当k取3时,该样本就属于红色类;当k取5时,就属于蓝色类了。所以k值的选择很大程度影响着该算法的结果,通常k的取值不大于20。

KNN算法原理

二、一些生活实例。
1、实现电影音乐等分类
我们平常看的电影和听的音乐都可以根据分类来搜索,像爱奇艺、腾讯视频、网易云音乐等都是可以通过分类来查找的,那么机器是如何来分类的呢?有人说是这些公司的员工分的类,那么大家想想,电影和音乐都有成千上万部、成千上万首,达到上亿也不是不可能的。如果人工一部一部、一首一首来分类,得消耗多大的人力和物力。此时利用KNN算法就能方便多了。

example 1:像筷子兄弟的《父亲》这首歌,大家都知道是归到亲情一类,那么机器是怎么准确的将它和亲情和爱情或其它类分开的呢?此时我们便可以根据“父亲”或者“母亲”等一些重要的词眼出现的次数判定。

example 2:像《泰坦尼克号》这部电影,我们可以根据电影中出现的打斗和亲吻等动作出现的次数来判定,若打斗动作出现的次数远远大于亲吻,就可以定义为动作片,否则就是爱情片,如果不相上下的话,则可以定为爱情动作片。
当然,判断得需要参照的条件,所以,需要我们给出前提和判断的标准。

2、推送适合被推送者的消息
example 1: 有时候,我们在某宝、某东上网购时,总是会有相应的商品推送,这些推送便是根据你浏览过的商品次数来自动实现的。
example 2: 某些约会网站上向你推荐一些符合自己想象的对象,他们便是通过分析你的个人资料然后再通过评判标准来推荐的,有时候这些功能让我们深深的感受到该APP或者网站的人性化

三、KNN算法优缺点
优点:精度高,对异常值不敏感、无数据输入假定

** 缺点:计算复杂度高、空间复杂度高**
一般实现步骤:
1、先算出距离。
2、选择距离最小的几个点。
3、排序。
In summar:在使用时必须有训练样本数据(给出前提),还要计算距离,如果数据量非常大会非常消耗空间和时间。它的另一个缺陷是无法给出任何数据的基础结构信息,因此我们无法平均实例样本和典型实例样本具体特征。要解决这个问题,好像要涉及到决策树等内容。由于对决策树不大清楚,就不在这里说了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值