KNN算法 鸢尾花种类预测

news2024/11/16 13:30:02

目录

一:KNN原理

二:数据处理

三:超参调试、模型保存及使用

四:鸢尾花种类预测 详细步骤 


一:KNN原理

从训练集中找到跟待测数据最近的k条记录

根据这些记录的分类决定新数据的分类

主要因素包括有:K邻居数目、训练集大小(数据集[训练集]长度的开平方)

1)计算距离:欧式距离 n个影响因素  p

2)找邻居:圈定一个距离待测数据最近的K个相邻对象

3)做分类:根据这些记录做出分类

详细见下面这篇文章

KNN算法原理 

二:数据处理

文件读取数据

特征数据、标签数据 --> DataFrame、数据洗牌、重置index

数据格式转换numpy ndarray 维度转换 

详细见下面这篇文章 

鸢尾花数据集处理

三:超参调试、模型保存及使用

超参调试

1:K 小于数据集[训练集]长度开平方

2:权重weight

3:p 维度*2--欧式距离的次方数加和

4:网络模型交叉数据验证 best_param

模型保存及使用

joblib

dump

load

对于测试集的创建--feature+label

详细见下面这篇文章

KNN搜索最优超参数 

四:鸢尾花种类预测 详细步骤 

4.1 加载数据

# 加载数据  鸢尾花load_iris
iris_datasets = load_iris()

4.2 提取特征数据

# 特征数据
iris_data = iris_datasets['data']

4.3 提取标签数据

# 标签数据
iris_target = iris_datasets['target']

4.4 数据集划分

# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.2, random_state=6)

4.5 选择算法

# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)

4.6 构建模型

# 构建基于训练集的模型
knn_model.fit(X_train, y_train)

4.7 模型评分

# 模型评分
score = knn_model.score(X_test, y_test)
print(score)

输出结果:0.9333333333333333 

4.8 调参优化

# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.5, random_state=6)
# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)
# 构建基于训练集的模型
knn_model.fit(X_train, y_train)
# 模型评分
score = knn_model.score(X_test, y_test)
print(score)

将test_size设置为0.5的时候,模型评分较高,评分结果如下

0.9733333333333334

4.9 模型预测

# 模型预测
predict_y = knn_model.predict(X_test)
print(predict_y == y_test)
[ True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True False  True
  True  True  True  True  True  True  True  True  True  True  True  True
  True  True  True  True  True  True  True  True  True  True  True  True
 False  True  True  True  True  True  True  True  True  True  True  True
  True  True  True]

可以看出False预测错误就两个,模型评分还是比较高的 

4.10 完整源码分享

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# 加载数据  鸢尾花load_iris
iris_datasets = load_iris()
# 特征数据
iris_data = iris_datasets['data']
# 标签数据
iris_target = iris_datasets['target']
# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_target, test_size=0.5, random_state=6)
# 选择算法 -- 有监督的分类问题
# KNN K近邻算法(近朱者赤近墨者黑)
# 创建算法
knn_model = KNeighborsClassifier(n_neighbors=3)
# 构建基于训练集的模型
knn_model.fit(X_train, y_train)
# 模型评分
score = knn_model.score(X_test, y_test)
print(score)
# 模型预测
predict_y = knn_model.predict(X_test)
print(predict_y == y_test)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java------JVM之类加载和双亲委派机制

类加载器:加载.class文件。 将新建的对象放入堆里面,而对象的引用(地址)放到栈,其中引用指向堆里面对应的对象。 1-启动类加载器,负责加载jre\lib目录下的rt.jar包c编写,加载java核心库 java.*,构造ExtClassLoader和A…

[CocosCreator]封装行为树(一)

(老规矩:广告位留给自己) 欢迎喜欢或者从事CocosCreator开发的小伙伴请加入我的大家庭CocosCreator游戏开发Q群:26855530 行为树的定义:控制AI实体决策流程的分层节点树。游戏中Npc的活动,或者主角挂机行为都十分依赖行为树,本章开始,封装适用CococCreator使用的TypeScript行…

Mongo基本操作

文章目录核心概念库<DataBase>集合<Collection>文档<Document>MySQL与MongoDB关系总结基本操作库<database>集合<Collection>文档<document>文档查询ANDORAND 和 OR 联合模糊查询排序分页总条数去重指定返回字段索引<index>操作复合…

vmware ESXI 7 升级ESXI 8

1 、上传VMware-Esxi-8.0安装包 2开启ssh 3、 远程登录到Esxi主机 ssh root192.168.31.119 [rootlocalhost:~] 4、升级到Esxi 8.0 [rootlocalhost:~] esxcli software sources profile list -d /vmfs/volumes/datastore1/iso/VMware-ESXi-8.0-20513097-depot.zip Name Vend…

软件设计师——项目管理

文章目录Gantt图与Pert图风险管理配置管理沟通管理题目举例Gantt图与Pert图 甘特图能够清晰描述每个任务的开始 / 结束时间及各任务之间的并行性&#xff0c;也可以动态地反映项目的开发进展情况&#xff0c;但难以反映多个任务之间存在的逻辑关系&#xff1b;PERT 利用项目的…

基于 Tensorflow 2.x 实现 BP 神经网络,实践 MNIST 手写数字识别

一、MNIST 数据集 MNIST 是一个非常有名的手写数字识别数据集&#xff0c;在很多资料中都会被用作深度学习的入门样例。在 Tensorflow 2.x 中该数据集已被封装在了 tf.keras.datasets 工具包下&#xff0c;如果没有指定数据集的位置&#xff0c;并先前也没有使用过&#xff0c…

【Java语言】— Java基础语法01

Java基础语法 1.注释 什么是注释 注释是写在程序中对代码进行解释说明的文字&#xff0c;方便自己和他人查看&#xff0c;以便理解程序。 注释有哪些 &#xff08;1&#xff09;单行注释 // 注释内容&#xff0c;只能写一行&#xff08;2&#xff09;多行注释 /* 注释内…

数据结构---判断一个数是否为2的整数次幂

判断一个数是否为2的整数次幂穷举法JAVA实现移位操作优化性能JAVA实现按位与JAVA实现实现一个方法&#xff0c;来判断一个正整数是否是2的整数次幂&#xff08;如16是2的4次方&#xff0c;返回true&#xff1b;18不是2的整数次幂&#xff0c;则返回false&#xff09;。要求性能…

BFS——Flood Fill模型及最短路模型

文章目录Flood Fill模型概述模板池塘计数城堡问题山峰和山谷最短路模型概述迷宫问题武士风度的牛抓住那头牛总结Flood Fill模型 概述 定义 从一个起始节点开始把附近与其连通的节点提取出或填充成不同颜色颜色&#xff0c;直到封闭区域内的所有节点都被处理过为止&#xff0c…

关于 SAP Gateway 响应头部 Last Modified 字段的赋值逻辑

本教程迄今为止&#xff0c;讨论的绝大多数都是 OData 服务数据实现类(Data Provider Class) 的实现。而要讨论 OData 服务的元数据话题&#xff0c;就得去 MPC 类研究。 MPC 类的 define 方法&#xff0c;负责生成 OData metadata 元数据&#xff1a; Postman 里请求元数据&…

​6. 独享锁 VS 共享锁

独享锁和共享锁同样是一种概念。我们先介绍一下具体的概念&#xff0c;然后通过ReentrantLock和ReentrantReadWriteLock的源码来介绍独享锁和共享锁。 独享锁也叫排他锁&#xff0c;是指该锁一次只能被一个线程所持有。如果线程T对数据A加上排它锁后&#xff0c;则其他线程不能…

Linux典型IO模型:阻塞、非阻塞、信号驱动、异步

目录 一、阻塞IO 二、非阻塞IO 三、信号驱动IO 四、异步IO 五、阻塞VS非阻塞&#xff08;概念&#xff09; 1.阻塞 2.非阻塞 3.区别与联系 六、同步VS异步&#xff08;概念&#xff09; 1.同步 2.异步 3.区别与联系 IO就是输入输出 一、阻塞IO 为了完成IO发起IO调…

高通平台开发系列讲解(充电篇)充电管理芯片PM7250B详解

文章目录 一、PM7250B硬件组成二、充电功能沉淀、分享、成长,让自己和他人都能有所收获!😄 📢充电管理芯片PM7250B,用于控制电池充电相关逻辑。 一、PM7250B硬件组成 PWM = Pulse Width Modulator,脉宽调制。SPMS = Switched Mode Power Supply,开关电源。GPIO = Gen…

接口测试(八)—— 日志收集、全量字段校验、JSON Schema语法

目录 一、日志收集 1、日志简介 2、日志的级别 3、日志代码实现分析 4、日志使用 二、全量字段校验 1、简介和安装 2、JSON Schema⼊⻔ 2.1 入门案例 2.2 校验方式 3、JSON Schema语法 3.1 type关键字 3.2 properties关键字 3.3 required关键字 3.4 const关键字…

ADI Blackfin DSP处理器-BF533的开发详解61:DSP控制ADXL345三轴加速度传感器-LCD(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度传感器的子卡&#xff0c;插在这个板子上&#xff0c;然后写了一些有意思的应用程序。 代码实现功能…

[C++]类和对象【中】

&#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode 文章目录类的六个…

推荐一个.Net分布式微服务开发框架

在给大家介绍之前&#xff0c;我们一起来看看分布式架构的使用场景与好处。 针对一些互联网系统&#xff0c;大数据、高并发和快速响应&#xff0c;都是系统必须满足的&#xff0c;而单机系统的架构是无法满足这样的需求的&#xff0c;这时候我们就需要用到分布式的架构。 分…

ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度传感器的子卡&#xff0c;插在这个板子上&#xff0c;然后写了一些有意思的应用程序。 代码实现功能…

SpringBoot集成JWT实现Token登录验证

1JWT 1.1 JWT是什么&#xff1f; JSON Web令牌(JWT)是一种开放的标准(RFC 7519)&#xff0c;它定义了一种紧凑而独立的方式在各方之间安全地传输信息为JSON对象。该信息可以被验证和信任&#xff0c;因为它是数字签名的。JWT可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公开…

全国A级景区数据(12000条)

中华人民共和国旅游景区依据质量等级划分景区级别,共分为五级。其中5A级为中国旅游景区最高等级,代表着中国世界级精品的旅游风景区。 而随着国家旅游管理部门对于A级景区实行“有进有出”的动态管理以来,A级景区的调整越来越常态化,其中不乏4A、5A级景区的调整,这也为A级…