Python基于KNN算法怎么实现尾鸢花数据集分类
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本文小编为大家详细介绍"Python基于KNN算法怎么实现尾鸢花数据集分类",内容详细,步骤清晰,细节处理妥当,希望这篇"Python基于KNN算法怎么实现尾鸢花数据集分类"文章能帮助大家解决疑惑,下
千家信息网最后更新 2025年01月24日Python基于KNN算法怎么实现尾鸢花数据集分类KNN模型理论 K最近邻分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。 KNN算法流程 1. 准备数据,对数据进行预处理; 2. 选用合适的数据结构存储训练数据和测试元组; 3. 设定参数; 4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列; 5. 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax; 6. 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列; 7. 遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别; 8. 测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值。 数据集准备 Iris(鸢尾花)数据集是多重变量分析的数据集。数据集包含150行数据,分为3类,每类50行数据。每行数据包含4个属性:Sepal Length(花萼长度)、Sepal Width(花萼宽度)、Petal Length(花瓣长度)和Petal Width(花瓣宽度)。可通过这4个属性预测鸢尾花卉属于三个种类(Setosa,Versicolour,Virginica)中的哪一类。 数据预处理 数据集结果如下图所示:
对于数据集做描述,结果如下所示: K-最近邻算法
本文小编为大家详细介绍"Python基于KNN算法怎么实现尾鸢花数据集分类",内容详细,步骤清晰,细节处理妥当,希望这篇"Python基于KNN算法怎么实现尾鸢花数据集分类"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
import pandas as pd
df = pd.read_csv('iris.csv')# 读入数据
df.columns = ['Sepal length', 'Sepal width', 'Petal length', 'Petal width', 'Species']
df.head()# 查看前5条数据
df.describe()# 查看数据信息
import numpy as np #使用K-近邻算法对鸢尾花数据进行交叉验证 from sklearn.datasets import load_iris import matplotlib.pyplot as plt
#下载数据集 iris = load_iris() data = iris.data[:,:2] target = iris.target print (data.shape)#(150,2) print (data[:10]) print (target[:10]) label = np.array(target) index_0 = np.where(label==0) plt.scatter(data[index_0,0],data[index_0,1],marker='x',color = 'b',label = '0',s = 15) index_1 =np.where(label==1) plt.scatter(data[index_1,0],data[index_1,1],marker='o',color = 'r',label = '1',s = 15) index_2 =np.where(label==2) plt.scatter(data[index_2,0],data[index_2,1],marker='s',color = 'g',label = '2',s = 15) plt.xlabel('X1') plt.ylabel('X2') plt.legend(loc = 'upper left') plt.show()
读到这里,这篇"Python基于KNN算法怎么实现尾鸢花数据集分类"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
数据
算法
方法
样本
训练
类别
优先级
队列
测试
分类
近邻
文章
鸢尾
最大
内容
宽度
属性
思路
所属
特征
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东大学网络安全学院夏令营
网络安全法全文 标语
知乎的发帖数据库设计
数据库实验目的与要求
网络安全宣传周法治日主题活动
哪些云服务器是免费的
c 连接已有数据库文件夹
网络安全管理漏洞扫描办法
网络安全网站设计感裙子
松江区项目数据库销售价格
网络安全与不安全内容对比
服务器安全备份软件
gbase数据库的理解
周晶 软件开发
公司内网的svn服务器怎么加速
广东服务器防火墙设备
互联网金融像金融科技转型
戴尔服务器硬盘排列方式
诚讯网络技术有限公司
数据库安全策略主要有
青岛网络安全科技馆
清华大学网络安全股票
如何查看达梦数据库的有效期
青浦区金融行业产品销售软件开发
北京综合软件开发收费
网信办 网络技术保障岗
软件开发学习哪门语言永远不过时
吕梁软件开发网上价格
计算机三级网络技术编程
软件开发的6个流程