机器学习-KNN算法详解&iris数据集的分类

本文介绍了K-Nearest Neighbor(KNN)算法的基本原理和应用,强调KNN是机器学习中简单而有效的分类算法。通过讲解如何计算距离,如欧式距离、曼哈顿距离等,解释了KNN算法如何根据最近邻进行分类。同时,文章讨论了K值选取的影响,指出其优缺点,并提供了一个基于sklearn库实现的鸢尾花数据集分类实例,通过网格搜索和交叉验证寻找最佳K值。
摘要由CSDN通过智能技术生成

微信公众号:龙跃十二

我是小玉,一个平平无奇的小天才。

最近在研究机器学习的一些算法,说到这里,最先少不了的就是监督学习里的一些分类算法,比如:朴素贝叶斯(naive_bayes)、KNN、决策树、随机森林、SVM。我也把最近学的这些算法用来练练手,做一个数据集的分类,以下代码仅供参考奥!

这里是重点!!!

今天先来讲讲利用KNN算法来做一个wine数据集的分类,后边还会持续更新每一个算法哦,多多关注我的博客,也欢迎大家关注小玉和龙叔的微信公众号【龙跃十二】,更多干货持续更新,只为和你一起学习,共同进步。

KNN算法:

什么是KNN算法,你可别被这几个简单的字母吓到了,KNN其实是指K-Nearest Neighbor,字面意思就是最近的邻居,它是机器学习算法中最基础、最简单的算法之一。它既能用于分类,也能用于回归。我们来看一张图:

从图中我们可以看出,要想知道蓝衣男孩的位置,我们需要计算跟他临近的四个邻居之间的距离,这样一来,我们就可以间接确定蓝衣男孩的具体位置。

关于KNN算法,总结起来就一句话:根据你的邻居来判断你的类型。

原理:
  • 定义:KNN算法最早是由Cover和Hart提出的一种分类算法。如果一个样本在特征空间的K个最相似的样本中大多数属于某一类别,则这个样本也属于这一类别。

就上边这一句话很好的阐述了KNN算法的精华,你仔细品品。

关于距离的计算:

我们平时主要用到三种距离公式:

  • 欧式距离
  • 曼哈顿距离
  • 明可夫斯基距离

这三种距离的计算我就不多说了,都是一些简单的数学问题,不明白的小伙伴baidu一下去!

注意:

1、K的取值:

  • k取值过大,更易受样本不均衡的影响。

  • k取值过小,更容易受异常点的影响。

    为了解决这个问题,我们往往在运用该算法解决实际问题的时候,会使机器进行自动选择最优的K值,一会在后边的实例中给大家详解哦

2、优点与缺点:

​ 优点:简单,算法核心易于理解,且在使用过程中不用训练模型。

​ 缺点:K的取值非常麻烦

​ KNN算法属于一种懒惰算法,当测试样本过大时,该算法所占用的内存开销过大,时间复杂度也很高。

实例:

​ ——基于KNN算法对鸢尾花iris数据集进行分类

数据集来源:可以在uci或者kaggle上下载,也可以直接在sklearn中直接调取。以下使用的是在sklearn中直接load

鸢尾花灰Iris数据集中有150个样本,每个样本有4个特征,1个标签。其中,鸢尾花种类可取0、1、2,分别代表山鸢尾setosa、变色鸢尾versicolor、维吉尼亚鸢尾virginica。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值