机器学习(一)KNN算法介绍

KNN算法介绍

算法概述

  • KNN的全称是K-Nearest-Neighbors(最邻近规则分类),是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是K个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻近值来代表。近邻算法就是将数据集合中每一个记录进行分类的方法。
    avator
    如图假设图中绿色的点就要预测的那个点,假设K=3。那么KNN算法就会找到与它距离最近的三个点(这里用圆圈圈起),通过比较哪种类别多一些,来将预测的点归为周围最多的类别。(比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角。)

距离计算

  • 曼哈顿距离(二维平面)

d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d= |x_1-x_2|+|y_1-y_2| d=x1x2+y1y2

  • 欧式距离(二维平面)

d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 d = \sqrt [] {(x_1-x_2)^2+(y_1-y_2)^2} d=(x1x2)2+(y1y2)2

K值选择

通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值
avator
avator
选择误差率最小的点为k值

KNN特点

  • KNN是一种非参的,惰性的算法模型

非参:并不是说这个算法不需要参数,而是意味着这个模型不会对数据做出任何的假设,与之相对的是线性回归(我们总会假设线性回归是一条直线)。也就是说KNN建立的模型结构是根据数据来决定的,这也比较符合现实的情况,毕竟在现实中的情况往往与理论上的假设是不相符的。

惰性:同样是分类算法,逻辑回归需要先对数据进行大量训练(tranning),最后才会得到一个算法模型。而KNN算法却不需要,它没有明确的训练数据的过程,或者说这个过程很快。

  • KNN算法优点
  1. 简单易用,相比其他算法,KNN算是比较简洁明了的算法。即使没有很高的数学基础也能搞清楚它的原理。
  2. 模型训练时间快
  3. 预测效果好。
  4. 对异常值不敏感
  • KNN算法缺点
  1. 对内存要求较高,因为该算法存储了所有训练数据
  2. 预测阶段可能很慢
  3. 对不相关的功能和数据规模敏感
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值