有监督__KNN算法

knn算法概述
  • KNN —— K Nearest Neighbors
  • 监督学习
  • 核心:采用测量不同特征值之间的距离进行分类
  • 原理:存在一个训练样本集,已知样本集中每一数据的所属分类。当输入没有标签的新数据后,选择新数据与样本数据特征最相似(k近邻)的分类作为新数据的分类
knn算法流程
  • 1、计算已经知类型样本集中的点与待分类点之间的距离
  • 2、按距离递增次序排序
  • 3、选取与当前点距离最小的 k 个点
  • 4、确定前 k 个点所在类别出现频q率
  • 5、返回前 k 个点出现频率最高的类别作为当前点的预测分类
图解
  • KNN的原理就是当预测一个新的值x的时候,根据它距离最近的K个点是什么类别来判断x属于哪个类别

在这里插入图片描述

  • 图中绿色的点就是我们要预测的那个点,假设K=3。那么KNN算法就会找到与它距离最近的三个点(这里用圆圈把它圈起来了),看看哪种类别多一些,比如这个例子中是蓝色三角形多一些,新来的绿色点就归类到蓝三角了。
    在这里插入图片描述
  • 但是,当K=5的时候,判定就变成不一样了。这次变成红圆多一些,所以新来的绿点被归类成红圆。从这个例子中,我们就能看得出K的取值是很重要的。
距离计算
  • 欧式距离
    在这里插入图片描述
  • 曼哈顿距离
    在这里图片描述
K值选择
  • 1、靠经验
  • 2、交叉验证 ( 将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据)
  • 3、初始最小值
  • 4、一般取奇数
knn算法特点
  • KNN是一种非参的,惰性的算法模型

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

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

knn算法优缺点
  • KNN算法优点
  • 1、简单易用,相比其他算法,KNN算是比较简洁明了的算法。即使没有很高的数学基础也能搞清楚它的原理。
  • 2、模型训练时间快,上面说到KNN算法是惰性的,这里也就不再过多讲述。
  • 3、预测效果好。
  • 4、对异常值不敏感
  • KNN算法缺点
  • 对内存要求较高,因为该算法存储了所有训练数据
  • 预测阶段可能很慢
  • 对不相关的功能和数据规模敏感

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值