python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解

简介: python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解

train_test_split()用法

python机器学习中常用 train_test_split()函数划分训练集和测试集,其用法语法如下:

  • X_train, X_test, y_train, y_test = train_test_split(train_data, train_target, test_size, random_state, shuffle)
变量 描述
X_train 划分的训练集数据
X_test 划分的测试集数据
y_train 划分的训练集标签
y_test 划分的测试集标签
参数 描述
train_data 还未划分的数据集
train_target 还未划分的标签
test_size 分割比例,默认为0.25,即测试集占完整数据集的比例
random_state 随机数种子,应用于分割前对数据的洗牌。可以是int,RandomState实例或None,默认值=None。设成定值意味着,对于同一个数据集,只有第一次运行是随机的,随后多次分割只要rondom_state相同,则划分结果也相同。
shuffle 是否在分割前对完整数据进行洗牌(打乱),默认为True,打乱

以sklearn库内置的iris数据集(鸢尾数据集)为例,首先获取数据:

获取数据

from sklearn.model_selection import train_test_split
# 以sklearn库内置的iris数据集(鸢尾数据集)为例
dataset = load_iris()

这里的dataset数据是sklearn.utils.Bunch类型的数据,比较像字典

将其打印出~

print(dataset)

如下所示
在这里插入图片描述
从中取出其data属性和target属性,X是特征数组(也称数据集),y表示类别数组(也称标签)

X = dataset.data
y = dataset.target

此例中,有四个特征(即data的4列表示4个特征),分别是鸢尾植物的萼片的长,萼片的宽,花瓣的长,花瓣的宽。
X中共150行,即150个样本,类别数据总共有150个数据(对应150个样本的类别)。

print(y)

在这里插入图片描述

y的150个数据如上图,其中,有0,1,2三个取值,表示三种花:

0 1 2
Iris Setosa(山鸢尾) Iris Versicolour(变色鸢尾) Iris Virginica(维吉尼亚鸢尾)

使用最简单的离散化算法,以均值为阈值,使大于阈值的特征值为1,小于阈值的特征值为0.

attribute_means = X.mean(axis=0) 
X_d = np.array(X >= attribute_means, dtype='int')  # bool转换
print(X_d) 

运行结果(成功将X的数据转换为bool类型):
在这里插入图片描述

划分训练集和测试集

然后就是使用train_test_split()函数将数据划分训练集和测试集了。

random_state = 10
# 以默认的0.25作为分割比例进行分割(训练集:测试集=3:1)
X_train, X_test, y_train, y_test = train_test_split(X_d, y, random_state=random_state)
print("There are {} training samples".format(y_train.shape[0]))
print("There are {} testing samples".format(y_test.shape[0]))

在这里插入图片描述
如图得到的数据中112/38接近3:1。分割成功!


完整代码脚手架

(将上述分步的代码写在一块儿方便复制使用):

from sklearn.model_selection import train_test_split
dataset = load_iris()

X = dataset.data
y = dataset.target

attribute_means = X.mean(axis=0) 
X_d = np.array(X >= attribute_means, dtype='int')

random_state = 10
X_train, X_test, y_train, y_test = train_test_split(X_d, y, random_state=random_state)
目录
相关文章
|
9月前
|
机器学习/深度学习 传感器 监控
机器学习:强化学习中的探索策略全解析
在机器学习的广阔领域中,强化学习(Reinforcement Learning, RL)无疑是一个充满魅力的子领域。它通过智能体与环境的交互,学习如何在特定的任务中做出最优决策。然而,在这个过程中,探索(exploration)和利用(exploitation)的平衡成为了智能体成功的关键。本文将深入探讨强化学习中的探索策略,包括其重要性、常用方法以及代码示例来论证这些策略的效果。
|
8月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
838 29
|
8月前
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
543 4
JSON数据解析实战:从嵌套结构到结构化表格
|
9月前
|
编解码 缓存 Prometheus
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
本期内容为「ximagine」频道《显示器测试流程》的规范及标准,我们主要使用Calman、DisplayCAL、i1Profiler等软件及CA410、Spyder X、i1Pro 2等设备,是我们目前制作内容数据的重要来源,我们深知所做的仍是比较表面的活儿,和工程师、科研人员相比有着不小的差距,测试并不复杂,但是相当繁琐,收集整理测试无不花费大量时间精力,内容不完善或者有错误的地方,希望大佬指出我们好改进!
637 16
「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
|
8月前
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
|
8月前
|
机器学习/深度学习 人工智能 Java
Java机器学习实战:基于DJL框架的手写数字识别全解析
在人工智能蓬勃发展的今天,Python凭借丰富的生态库(如TensorFlow、PyTorch)成为AI开发的首选语言。但Java作为企业级应用的基石,其在生产环境部署、性能优化和工程化方面的优势不容忽视。DJL(Deep Java Library)的出现完美填补了Java在深度学习领域的空白,它提供了一套统一的API,允许开发者无缝对接主流深度学习框架,将AI模型高效部署到Java生态中。本文将通过手写数字识别的完整流程,深入解析DJL框架的核心机制与应用实践。
514 3
|
8月前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
|
9月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
245 4
|
9月前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
9月前
|
数据采集 监控 搜索推荐
深度解析淘宝商品详情API接口:解锁电商数据新维度,驱动业务增长
淘宝商品详情API接口,是淘宝开放平台为第三方开发者提供的一套用于获取淘宝、天猫等电商平台商品详细信息的应用程序接口。该接口涵盖了商品的基本信息(如标题、价格、图片)、属性参数、库存状况、销量评价、物流信息等,是电商企业实现商品管理、市场分析、营销策略制定等功能的得力助手。

推荐镜像

更多