一、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. 根据status信息对MySQL服务器进行优化-2
  2. 数字化在金融领域的应用与实践,从“我觉得”到“用户觉得”
  3. 调整KDevelop字体大小
  4. 你有什么难忘的出差经历?
  5. 亚稳态到底是什么呢?
  6. MATLAB 与Modelsim之间对测试系统的联合仿真
  7. [server]阿里云服务器远程文件传输的解决方案
  8. Perl语言入门到精通学习路线
  9. 19.首页异步数据的获取
  10. OAuth2.0新浪微博开放平台、腾讯社区开放平台
  11. C#Form窗体模仿PhotoShop软件,高仿真原PS界面,实现PS对图片基本操作、拍照等,计算机图形学相关
  12. Iphone 开发播放音频无声音
  13. 做了个护盾出来 哈哈
  14. 最值得推荐的6个物联网开发平台
  15. vue ie浏览器兼容
  16. 码元、波特、速率、带宽(附例题)
  17. Spring定时任务写法
  18. github搜索技巧小结
  19. 猫眼html源码,爬取猫眼及可视化(示例代码)
  20. 湖南多校对抗赛(csu 1560)

热门文章

  1. element-ui实现table表格的嵌套(table表格嵌套)功能实现
  2. 华为鲁勇:自己做的降落伞自己先跳 华为云这样赢得客户信赖
  3. 怎么给金蝶kis记账王设置数量金额辅助核算
  4. 【Rust日报】 2021-01-21 Rust 的产品实践:1Password
  5. Double保留指定小数位数的五种方法
  6. MFC宠物商店信息管理系统
  7. 找不到 SolidWorks Constant type library.的解决办法
  8. 中兴PTN常用命令解析
  9. Comodo Firewall 世界第一的免费防火墙
  10. IOS的一些信息获取