当前位置: 首页 > news >正文

Day17_【机器学习—在线数据集 鸢尾花案例】

机器学习建模流程:

  1. 加载数据——在线数据集,鸢尾花数据,150条 ,dm01_loadiris(),dm04_模型评估与预测()
  2. 数据的预处理——数据集分区(训练集和测试集),dm03_traintest_split(),dm04_模型评估与预测()
  3. 特征工程——特征预处理(数据标准化),dm04_模型评估与预测()
  4. 模型训练(机器学习),dm04_模型评估与预测()
  5. 模型预测和评估——dm04_模型评估与预测()

from sklearn.datasets import load_iris  # 在线数据集 150条
from sklearn.model_selection import train_test_split  # 分割训练集和测试集
from sklearn.preprocessing import StandardScaler  # 数据标准化
from sklearn.neighbors import KNeighborsClassifier  # KNN算法 分类对象,因为鸢尾花是分类的场景采用三分法
from sklearn.metrics import accuracy_score  # 模型评估 计算模型准确率
# 以下三个库 展示数据可视化,目的:观察数据在模型上的分布情况,是否存在异常值
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt#  加载鸢尾花 在线数据集
def dm01_loadiris():# 加载数据iris_data = load_iris()## print(iris_data) #此行会打印出以下keys和keys的具体内容,以如下更清晰的方式展示重点数据# 数据的键,也就是它的主要组成部分的名称print(iris_data.keys())# 数据特征名print(iris_data.feature_names)# 数据前5行 特征值print(iris_data.data[:5])# 数据标签名print(iris_data.target_names)# 数据前52行 标签值print(iris_data.target[:52])# 2、数据的可视化:定义函数 dm02_show_iris()
def dm02_show_iris():# 1、加载数据iris_data = load_iris()# 2、把上述的数据封装df对象iris_df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names)# 3、给df对象新增一个标签列iris_df['label'] = iris_data.target# print(iris_df)# 4、具体做可视化(了解)# 参1:数据 iris_df# 参2:x轴值  花瓣长度# 参3:y轴值 花瓣宽度# 参4:hue 颜色(根据鸢尾花的标签的分组,显示不同颜色)# 参5:fit_reg=False  不绘制拟合回归线,True 绘制拟合回归线sns.lmplot(data=iris_df, x="petal length (cm)", y='petal width (cm)', hue='label', fit_reg=True)# 5、设置标题plt.title("iris data")plt.tight_layout()  # 自动调整子图的参数plt.show()#  数据集(训练集测试集)划分
def dm03_traintest_split():# 1、加载数据集iris_data = load_iris()  # 150条  训练集 和测试集# 2、划分数据集# iris_data.data  ->特征  150条# iris_data.target ->标签 150条# test_size ->表示测试集占比# random_state ->随机种子   如果种子一样,每次划分数据集都是一样的。x_train, x_test, y_train, y_test = train_test_split(iris_data.data, iris_data.target, test_size=0.2,random_state=22)# print(f"训练集,x-特征:{len(x_train)}")  # 120条  每条4个列(特征)# print(f"测试集,x-特征:{len(x_test)}")# 30条  每条4个列(特征)# print(f"训练集,y-标签:{len(y_train)}") # 120条  标签# print(f"测试集,y-标签:{len(y_test)}")  #30条  标签print(f"x_train:\n{x_train}")print(f"x_test:\n{x_test}")print(f"y_train:\n{y_train}")print(f"y_test:\n{y_test}")def dm04_模型评估与预测():# 1、获取数据集iris_data = load_iris()# 2、数据预处理(数据集划分)x_train, x_test, y_train, y_test = train_test_split(iris_data.data, iris_data.target, test_size=0.2,random_state=22)# 3、特征工程之子工程_特征预处理(标准化) 演示!!因为源数据不存在量纲问题# 3.1 创建标准化对象transfer = StandardScaler()# 3.2 对特征列进行标准化  x_train:训练集特征  训练+转换x_train = transfer.fit_transform(x_train)# 3.3 处理测试集  transform只有转换x_test = transfer.transform(x_test)# 4、模型训练 -》机器学习# 4.1 创建模型对象es = KNeighborsClassifier(n_neighbors=5)# 4.2模型训练es.fit(x_train, y_train)  # 训练集特征   训练集标签# 5、模型预测   返回值是模型的预测值:y_predicty_predict = es.predict(x_test)# 打印对比print(f"(测试集)预测结果为:{y_predict}")  # 30个预测标签print(f"(测试集)真实结果为:{y_test}")  # 30个真实标签# 6.模型评估,两种方式# print(f"准确率:{es.score(x_test,y_test)}")# 参1:测试集真实标签   参2:预测标签print(f"准确率:{accuracy_score(y_test, y_predict)}")if __name__ == '__main__':dm01_loadiris()dm02_show_iris()dm03_traintest_split()dm04_模型评估与预测()

http://www.dtcms.com/a/356802.html

相关文章:

  • Java面试实战:Spring Boot微服务在电商场景的技术深度解析
  • Scikit-learn Python机器学习 - Scikit-learn介绍
  • Dify1.8.0更新,Docker 无法拉取镜像怎么破?
  • 【大模型13】 视觉大模型与多模态
  • 部署2.516.2版本的jenkins,同时适配jdk8
  • 【ACP】2025-最新-疑难题解析-9
  • 技术速递|新手指南:如何在 Foundry Local 中使用自定义模型
  • 趣味学Rust基础篇(控制流程)
  • 关于Libvio访问异常排查指南
  • 2025互联网大厂Java面试1000道题目及参考答案
  • openEuler系统实现MySQL数据库主从复制
  • Java 流(Stream)、文件(File)和IO
  • NSSCTF-[NISACTF 2022]string_WP
  • 第6.4节:awk语言 for 语句
  • Linux 软件编程(十四)网络编程:数据存储与 SQLite 数据库
  • (二)Python语法基础(下)
  • web端播放flv视频流demo(flv.js的使用)
  • 【C语言16天强化训练】从基础入门到进阶:Day 15
  • 量化研究--开放ptrade西蒙斯全天候ETF策略动量策略
  • 一文说清楚ABAP中的‘显示提交(Explicit Commit)’和‘隐式提交(Implicit Commit)’
  • CesiumJS 封装 - 初始化与配置
  • Ubuntu 搭建 Solana 区块链开发环境 + Anchor 智能合约完整教程
  • 2025年防窜货系统行业深度分析报告
  • 将数据赋值到Word并下载
  • Cesium 入门教程(十三):粒子系统实例
  • 无人机中的坐标系理解:机体坐标系,东北天(NED)坐标系,世界大地(WGS84)坐标系
  • Python的一次实际应用:利用Python操作Word文档的页码
  • AI 与脑机接口的交叉融合:当机器 “读懂” 大脑信号,医疗将迎来哪些变革?
  • CPP学习之map和set
  • 渗透测试学习笔记