02-KNN案例:鸢尾花分类
1. 需求说明基于鸢尾花数据集使用 KNN 实现 3 类鸢尾花自动分类。2. 数据集简介来源经典公开数据集sklearn 内置。样本共 150 条分 3 类鸢尾花山鸢尾、变色鸢尾、维吉尼亚鸢尾每类各 50 条。特征4 个数值特征花萼长、花萼宽、花瓣长、花瓣宽。sepal length (cm)花萼长度sepal width (cm)花萼宽度petal length (cm)花瓣长度petal width (cm)花瓣宽度标签3 种花卉类别无缺失、无异常值数据干净适合 KNN 等基础分类算法测试。0setosa 山鸢尾1versicolor 变色鸢尾2virginica 维吉尼亚鸢尾3. KNN算法实现3.1 导包from sklearn.datasets import load_iris # 导入数据集 from sklearn.model_selection import train_test_split, GridSearchCV # 划分数据集, 交叉验证网格搜索 from sklearn.neighbors import KNeighborsClassifier # 创建模型对象 from sklearn.metrics import accuracy_score # 模型评估 from sklearn.preprocessing import StandardScaler # 标准化对象 import seaborn as sns import pandas as pd import matplotlib.pyplot as plt3.2 获取数据# 1. 加载数据集 data load_iris() # 2. 查看数据集 # print(data.keys()) # 获取数据集所有的key print(data.data[:5]) # 数据集的前5行 print(data.target[:5]) # 数据集的标签的前5行 print(data.target_names) # 数据集的标签名 print(data.feature_names) # 数据集的属性名 # print(data.DESCR) # 数据集的描述 # print(data.frame) # 数据集的DataFrame格式 # print(data.filename) # 数据集的文件名 # print(data.data_module) # 数据集的模块 # 3. 可视化 data_df pd.DataFrame(data.data, columnsdata.feature_names) data_df[target] data.target # 散点图 sns.lmplot(xsepal length (cm), ysepal width (cm), huetarget, datadata_df, fit_regFalse) plt.title(iris data) plt.tight_layout() # 自动调整子图参数使之填充整个图像 plt.show()3.3 数据预处理缺失值、异常值处理这里不用划分数据集# 划分数据集 # 参数解释 # test_size测试集所占的比例默认为0.25 # random_state随机数种子可以指定一个整数从而保证每次运行时数据集的划分都是固定的 # 返回值x_train, x_test, y_train, y_test x_train, x_test, y_train, y_test train_test_split(data.data, data.target, test_size0.2, random_state22) # 打印划分后的数据集 print(f训练集特征的大小 {x_train.shape}) print(f测试集特征的大小 {x_test.shape}) print(f训练集标签的大小 {y_train.shape}) print(f测试集标签的大小 {y_test.shape})3.4 特征工程3.4.1 特征提取这里不用3.4.2 特征预处理标准化scaler StandardScaler() x_train scaler.fit_transform(x_train) # 方法解释fit_transform()兼具训练和转换的功能先训练再转换适用于第一次进行标准化一般用于训练集 x_test scaler.transform(x_test) # 方法解释transform()只转换适用于已经训练的模型进行转换3.5 模型训练网格搜索交叉验证# 创建模型对象 estimator KNeighborsClassifier() # 网格搜索交叉验证 param_dict {n_neighbors: [i for i in range(1, 11)]} # 超参数字典, 超参可能出现的值 estimator GridSearchCV(estimator, param_gridparam_dict, cv5) # 创建GridSearchCV模型对象 estimator.fit(x_train, y_train) # 交叉验证前的模型训练 # 打印结果 print(f最优评分为{estimator.best_score_}) print(f最优超参组合为{estimator.best_params_}) print(f最优的估计器对象为{estimator.best_estimator_}) print(f具体的交叉验证结果为{estimator.cv_results_})3.6 模型评估# 1获取最优超参的模型对象 estimator estimator.best_estimator_ # 2模型训练 estimator.fit(x_train, y_train) # 3模型预测 y_pre estimator.predict(x_test) # 4模型评估 print(f准确率{accuracy_score(y_test, y_pre)})3.7 模型预测# 样本外预测 x # 要预测的数据集 y_pre estimator.predict(x) print(y_pre)附件1. 完整代码这里准备放一个KNN万能建模.py文件还没整理好~

相关新闻

操作系统进程管理深度精讲,PCB进程控制块、进程五态流转、fork写时复制、僵尸/孤儿进程彻底根治

操作系统进程管理深度精讲,PCB进程控制块、进程五态流转、fork写时复制、僵尸/孤儿进程彻底根治

0. 前言:操作系统调度的最小业务单元我们搭建了操作系统完整底层框架,吃透了计算机硬件协作机制、内核四大模块、用户态内核态隔离、并发并行核心本质,明确了进程管理是CPU调度的核心模块。从今天开始,我们正式深耕操作系统第一大…

2026/7/5 13:52:31阅读更多 →
解放双手!Fate/Grand Automata:你的FGO自动化战斗助手

解放双手!Fate/Grand Automata:你的FGO自动化战斗助手

解放双手!Fate/Grand Automata:你的FGO自动化战斗助手 【免费下载链接】FGA Auto-battle app for F/GO Android 项目地址: https://gitcode.com/gh_mirrors/fg/FGA 还在为FGO无尽的刷本和重复操作感到疲惫吗?Fate/Grand Automata&…

2026/7/5 13:52:31阅读更多 →
记录节选 0009

记录节选 0009

A:滚蛋。。先说火星哥。。咋办。。知道刚才怎么回答我的吗。。你自己做好准备 S:🤣 哥。 你这一句:滚蛋。。先说火星哥。。咋办。。知道刚才怎么回答我的吗。。你自己做好准备我已经闻到味了。 因为按照目前的证据链。 火星哥已经从: 我喜欢这…

2026/7/5 13:47:30阅读更多 →
PyTorch 2.0+ 实战:Fashion MNIST 图像分类从 91% 到 95% 的 3 个调优技巧

PyTorch 2.0+ 实战:Fashion MNIST 图像分类从 91% 到 95% 的 3 个调优技巧

PyTorch 2.0 实战:Fashion MNIST 图像分类从 91% 到 95% 的 3 个调优技巧当你在Fashion MNIST数据集上训练一个基础CNN模型时,91%的准确率可能看起来已经不错了。但对于追求极致性能的开发者来说,这仅仅是起点。本文将分享三个经过实战验证的…

2026/7/5 14:52:35阅读更多 →
groupby + agg:数据分析 80% 的活就这两招

groupby + agg:数据分析 80% 的活就这两招

groupby agg:数据分析 80% 的活就这两招 “各品类销售额多少?” “每个月的 GMV 趋势?” “各部门绩效排名?” 这些问题的答案,都是 groupby 聚合。 Excel 里你要拉透视表、写 SUMIF,Pandas 里就两行。 g…

2026/7/5 14:52:35阅读更多 →
羞羞答答地搞了个数学宝典

羞羞答答地搞了个数学宝典

从申请软著到断断续续开发,搞了一年,总算上架了。 小米市场上架最快,当天提交,当天上架。 App Store审核时间长达8天,但一次性通过。最难的华为市场,因为重名,还得重新备案,导致现在…

2026/7/5 14:52:35阅读更多 →
ViT (Vision Transformer) 图像分类实战:ImageNet-1K 上 85.2% Top-1 精度复现指南

ViT (Vision Transformer) 图像分类实战:ImageNet-1K 上 85.2% Top-1 精度复现指南

ViT (Vision Transformer) 图像分类实战:从零实现ImageNet-1K 85.2% Top-1精度当卷积神经网络(CNN)长期统治计算机视觉领域时,2020年一篇名为《An Image is Worth 16x16 Words》的论文彻底改变了游戏规则。Vision Transformer&…

2026/7/5 14:52:35阅读更多 →
数据在内存中的存储:从整数到浮点数的底层原理

数据在内存中的存储:从整数到浮点数的底层原理

📑 本文目录 📖 1. 整数在内存中的存储 🧩 原码、反码、补码的定义🤔 为什么计算机要使用补码? 📖 2. 大小端字节序和字节序判断 🧩 2.1 什么是大小端?🤔 2.2 为什么会有…

2026/7/5 14:52:35阅读更多 →
[操作系统]操作系统核心笔记(面试)

[操作系统]操作系统核心笔记(面试)

一、OS核心框架模块[0x0001][0x0001]核心考查形式进程管理[0x0001][0x0001]计算题(调度、死锁)、综合题内存管理[0x0001][0x0001]计算题(地址变换、缺页)、概念题文件管理[0x0001][0x0001]选择题、基础应用题设备管理[0x0001][0x0…

2026/7/5 14:47:34阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/5 0:01:08阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/5 0:01:08阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/5 0:01:08阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/5 1:30:27阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/5 3:48:10阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/5 3:48:09阅读更多 →