原生python实现knn分类算法(鸢尾花数据集)

本文介绍了如何使用原生Python实现K近邻(KNN)分类算法,以鸢尾花数据集为例。KNN算法的核心是计算样本间的欧式距离,选取最近的k个邻居进行类别投票。文章展示了算法的设计、优点与缺点,以及完整的Python代码实现,包括训练、预测和评估。在实验中,通过调整k值,得到了测试集的正确率。
摘要由CSDN通过智能技术生成

一:作业题目

原生python实现knn分类算法(鸢尾花数据集)

二:算法设计

Knn算法的核心思想:一个样本x与样本集中的k个最相邻的样本中的大多数属于某一个类别yLabel,那么该样本x也属于类别yLabel,并具有这个类别样本的特性。简而言之,一个样本与数据集中的k个最相邻样本中的大多数的类别相同。由其思想可以看出,KNN是通过测量不同特征值之间的距离进行分类,而且在决策样本类别时,只参考样本周围k个“邻居”样本的所属类别。因此比较适合处理样本集存在较多重叠的场景,主要用于聚类分析、预测分析、文本分类、降维等,也常被认为是简单数据挖掘算法的分类技术之一。

在确定训练集是,就要确定训练数据及其对应的类别标签;然后把待分类的测试数据与训练集数据依次进行特征比较;从训练集中挑选出最相近的k个数据,这k个数据中投票最多的分类,即为新样本的类别。

空间距离采用“欧式距离”进行计算,表达式如下

Knn算法流程图:

Knn算法的优点

(1)理论成熟简单,易于理解及算法实现;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值