一、train_test_split官方文档链接

二、参数介绍
① X :(必需) 待划分的样本集
② y :(非必需) 样本标签target(如果你只是想把数据简单的分为两部分,不涉及分类算法等需要标注数据标签的情况就无须设置)
③ train_size : (非必需) int型或float型,整型表示划分后的数据个数;浮点型表示划分数据的比例。
④ test_size :(非必需) 同上
⑤ random_state :(非必需) int 类型,默认值为None。先笼统的认为是一个控制分裂过程随机性的一个参数。不用管内部实现过程。
⑥ shuffle :(非必需) 默认为True。控制拆分数据前,原始数据集是否需要打乱再拆分。
⑦ stratify :(非必需)

三、自己动手看一下效果
1. 自定义一个数据集:

import numpy as npx = np.arange(1, 25).reshape(12, 2)
y = np.array([0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0])print("原始数据集:\n",x)
print("数据标签:\n",y)

输出如下:

原始数据集:[[ 1  2][ 3  4][ 5  6][ 7  8][ 9 10][11 12][13 14][15 16][17 18][19 20][21 22][23 24]]
数据标签:[0 1 1 0 1 0 0 1 1 0 1 0]

2.先用最简单的执行方式,了解一下各个参数的作用
首先默认一切非必须参数为默认值:

from  sklearn.model_selection import train_test_split
x_train,x_test = train_test_split(x)
print("训练数据为:\n",x_train)
print("测试数据为:\n",x_test)

输出如下:

训练数据为:[[ 9 10][13 14][ 5  6][11 12][15 16][21 22][23 24][ 7  8][ 1  2]]
测试数据为:[[17 18][19 20][ 3  4]]

由于shuffle默认值为True,即原始数据在划分前做了打乱处理,因此分裂后的数据是乱序的。若此时重新执行当前代码,输出结果如下:

训练数据为:[[ 7  8][23 24][ 1  2][ 3  4][19 20][15 16][21 22][17 18][13 14]]
测试数据为:[[11 12][ 5  6][ 9 10]]

可以发现,输出变了,(emmm,大部分实验场景下,这种每次都变的输入并不利于后续的研究分析,应该避免,但是也不排除有些情况下,就是希望数据每次都不一样,OK,你自己判断一下。我不管。。。)。若要避免这种情况有两种解决方式,分别是设置shuffle和random_state,详情见3、4。

  1. 设置shuffle
    设置shuffle为False,即在拆分数据前,不对原始数据集进行打乱,但是划分结果后的数据按原始数据的顺序排列。
x_train,x_test = train_test_split(x,shuffle=False)

输出结果如下:

训练数据为:[[ 1  2][ 3  4][ 5  6][ 7  8][ 9 10][11 12][13 14][15 16][17 18]]
测试数据为:[[19 20][21 22][23 24]]
  1. 设置random_state
    若你仍希望拆分前对原始数据集进行打乱处理,又希望每次重复执行你的代码时,划分后的数据能够相同,此时就可以设置rrandom_state,至于设置为多少我还没有搞懂,根据经验在1到10随便设置选一个整数就OK,结果没有影响。
x_train,x_test = train_test_split(x,random_state=1)

重复执行两次上述代码,划分后的数据集两次相同,输出结果如下:

训练数据为:[[21 22][ 3  4][13 14][ 1  2][15 16][23 24][19 20][17 18][11 12]]
测试数据为:[[ 5  6][ 7  8][ 9 10]]
  1. 设置stratify
    如果你的数据压根没有标签,就不用管这个参数;如果有标签,假设标签分别为0和1,表示正负样本,设置stratify就可以保证划分后的训练集和测试集中正负样本的比例近似相同。
x = np.arange(1, 25).reshape(12, 2)
y = np.array([0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0])
x_train, x_test, y_train, y_test = train_test_split(x, y, stratify=y)

输出结果如下:

数据标签:[0 1 1 0 1 0 0 1 1 0 1 0]
训练数据为:[[21 22][ 3  4][ 7  8][17 18][15 16][ 1  2][ 9 10][13 14][11 12]]
训练数据标签为:[1 1 0 1 1 0 1 0 0]  #(emmm这里样本总个数太少了,不明显,你可以自己试一下大样本的结果)正负样本比例4/5
测试数据为:[[23 24][ 5  6][19 20]]
测试数据标签为:        #正负样本比例2/1[0 1 0]

Sklearn : train_test_split()函数的用法相关推荐

  1. sklearn之train_test_split()函数各参数含义

    在机器学习中,我们通常将原始数据按照比例分割为"测试集"和"训练集",从 sklearn.model_selection 中调用train_test_split ...

  2. sklearn之train_test_split()函数各参数

    sklearn之train_test_split()函数各参数 在机器学习中,我们通常将原始数据按照比例分割为"测试集"和"训练集",从 sklearn.mod ...

  3. train_test_split 函数

    在机器学习中,我们通常将原始数据按照比例分割为"测试集"和"训练集",从 sklearn.model_selection 中调用train_test_split ...

  4. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

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

    文章目录 train_test_split()用法 获取数据 划分训练集和测试集 完整代码脚手架 train_test_split()用法 python机器学习中常用 train_test_split ...

  6. sklearn的train_test_split函数

    train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. from sklearn.model_selection import ...

  7. sklearn中的train_test_split()函数解析

    sklearn中的train_test_split()函数解析 train_test_split()函数:机器学习中用于分割数据集(训练集和测试集) X_train,X_test,y_train,y_ ...

  8. sklearn中的train_test_split函数

    train_test_split函数用于将数据集随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. X_train,X_test, y_train, y_test =cr ...

  9. sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略

    sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略 目录 sklearn.pipeline函数使用及其参数解释 sklearn.pipeline函数使用及 ...

最新文章

  1. win7下解决Android SDK Manger慢
  2. 你了解SpringBoot启动时API相关信息是用什么数据结构存储的吗?(上篇)
  3. python resize_Python resize
  4. 十种常见排序算法欢聚一堂
  5. Django 输出二维码
  6. spin_lock浅析【转】
  7. oracle中varchar2和nvarchar2的区别
  8. android按钮放图片不显示文字,Android 自定义标签 Imagebutton实现ImageButton里放置文字...
  9. Flink中水位线Watermark
  10. Win10开机后电脑卡顿-F5刷新反应速度慢问题解决。(C盘清理)
  11. IP地址为140.123.0.0的地址是B类地址,若要切割为10个子网,而且都要连接上Internet,请问子网掩码应设为
  12. hive 分区表select全部数据_Hive中如何快速的复制一张分区表(包括数据)
  13. 浅拷贝之copyProperties()
  14. 802.11成帧封装实现(三)
  15. 传智播客成都Java培训中心
  16. web期末网站设计大作业:基于HTML+CSS+JavaScript制作新能源汽车企业网站
  17. 引擎之旅 Chapter.3 文件系统
  18. 00_linux 设备驱动模型 2.6以后通用模型
  19. ssm众筹平台系统毕业设计(附源码、运行环境)
  20. 常用的数据分布(泊松分布,二项分布,伯努利分布,正态分布,均匀分布等)

热门文章

  1. 百度糯米 php 面试题,百度糯米php笔试题.doc
  2. redis高可用集群搭建
  3. redis 高可用与持久化
  4. 海康威视录像机的远程访问问题
  5. 什么是虚拟现实,什么是增强现实?
  6. AR电力巡检|工业电力行业使用AR进行远程维护的绝对优势|effiar
  7. 致,迷失在黑暗中的曾经。
  8. OpenCore默认安装界面改成中文
  9. SCAU华南农业大学-数电实验-七进制同步加法计数器-实验报告
  10. Arduino固定翼航模SU-27的设计与制作