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

Scikit-learn Python机器学习 - 数据集的划分

锋哥原创的Scikit-learn Python机器学习视频教程:

2026版 Scikit-learn Python机器学习 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

课程介绍

本课程主要讲解基于Scikit-learn的Python机器学习知识,包括机器学习概述,特征工程(数据集,特征抽取,特征预处理,特征降维等),分类算法(K-临近算法,朴素贝叶斯算法,决策树等),回归与聚类算法(线性回归,欠拟合,逻辑回归与二分类,K-means算法)等。

Scikit-learn Python机器学习 - 数据集的划分

我们需要把数据集进行划分,一部分用于训练构建模型,另外一部分用于测试。常见划分比例8:2,7:3,或者75%:25%。

train_test_split() 是 Scikit-learn 中最常用的数据集划分方法之一,用于将数据集随机划分为训练子集和测试子集。这个方法简单易用,但功能强大,提供了多个参数来满足不同的数据划分需求。

基本语法:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None
)

参数详解:

  1. X 和 y

  • X: 特征数据集,通常是二维数组或矩阵

  • y: 目标变量,通常是一维数组

  1. test_size 和 train_size

  • test_size: 测试集的比例或数量

    • 浮点数 (0.0-1.0): 表示测试集占总数据集的比例

    • 整数: 表示测试集的绝对样本数

    • 默认: None (使用补集,即 1 - train_size)

  • train_size: 训练集的比例或数量

    • 浮点数 (0.0-1.0): 表示训练集占总数据集的比例

    • 整数: 表示训练集的绝对样本数

    • 默认: None (使用补集,即 1 - test_size)

注意:test_sizetrain_size 只需指定一个即可。

  1. random_state

  • 整数: 设置随机种子,确保每次划分结果相同

  • 默认: None (每次划分结果不同)

  • 在需要可重复实验时非常有用

  1. shuffle

  • 布尔值: 是否在划分前打乱数据

  • 默认: True

  • 对于时间序列数据,通常设置为 False

  1. stratify

  • 数组-like 对象: 用于分层抽样,保持划分后各类别比例与原始数据集相同

  • 默认: None (不进行分层抽样)

  • 常用于分类问题中类别不平衡的情况

使用实例:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_splitif __name__ == '__main__':# 加载鸢尾花数据集iris = load_iris()print('鸢尾花数据集:', iris)print('数据集描述:', iris['DESCR'])print('特征名称:', iris.feature_names)print('特征数据值:', iris.data)print('特征数据形状:', iris.data.shape)print('目标名称:', iris.target_names)print('目标值:', iris.target)# 数据集划分x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)print("训练集的特征值:", x_train, x_train.shape)print("训练集的目标值:", y_train, len(y_train))print("测试集的特征值:", x_test, x_test.shape)print("测试集的目标值:", y_test, len(y_test))

运行输出:

http://www.xdnf.cn/news/1408609.html

相关文章:

  • 网格图--Day03--网格图DFS--2658. 网格图中鱼的最大数目,1034. 边界着色,1020. 飞地的数量
  • Cartographer中的gflag与lua文件
  • 【开题答辩全过程】以 基于Java的城市公交查询系统设计与实现为例,包含答辩的问题和答案
  • 记录测试环境hertzbeat压测cpu高,oom问题排查。jvm,mat,visulavm
  • 浏览器和 node 操作文件的 api 以及区别
  • GEE 实战:Landsat 5 月度 NDVI 数据插值填补(以 8 月为例)_后附完整代码
  • Python:如何批量下载CLMS NDVI V3数据集?
  • PyQt5 K线图实现与性能优化详解
  • 神州数码之FTP/TFTP 升级 篇
  • 深入解析Linux系统中的/etc/hosts文件
  • 在Windows的wsl中如何以root登录Ubuntu
  • OpenStack 02:使用 DevStack 单节点一体化部署
  • Kafka面试精讲 Day 3:Producer生产者原理与配置
  • Java提供高效后端支撑,Vue呈现直观交互界面,共同打造的MES管理系统,含完整可运行源码,实现生产计划、执行、追溯一站式管理,提升制造执行效率
  • isp图像处理--bayer Binning
  • isp 图像处理--DPC坏点矫正
  • 张柏芝亮相林家谦演唱会 再次演绎《任何天气》
  • 秋招笔记-8.31
  • 【ACP】2025-最新-疑难题解析- 练习一汇总
  • 矩阵待办ios app Tech Support
  • 【机器学习】-torch相关知识01
  • IO_hw_8.29
  • 8.31【A】scons,带宽,语义semantic,读论文颜色规范,系统运行命令
  • 在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
  • 【数学史冷知识】关于行列式的发展史
  • kkfile一键部署-ubuntu版
  • 云计算与服务器
  • 大模型参数量与计算量(FLOPs)估算方法
  • 【Flink】并行度的设置
  • 从 JDK 8 到 JDK 17