本篇博客介绍train_test_split,步骤1-4是自己手打代码和思路分享,步骤5介绍如何使用sklearn中的train_test_split,步骤3有介绍随机种子哦,简单易懂,适合小白入门

1 切分数据集

前言:机器学习就是把数据扔进算法,训练出模型(参数),用模型对未知数据进行预测。

谈一谈为什么要切分数据集:
①如果直接把全部数据都扔给算法得到模型然后再对数据(用于训练模型的数据)进行预测这很容易预测得很好,但对于未知数据却不一定好。
好比:老师布置作业给你做再给你评讲,考试的题目是作业的题目,可想而知大家都会考得很好。但对于作业题目外的考试大家能否考好是未知的,因为有些同学完成作业的题而且把原理搞懂了这些同学对同类型的考试就会考高分;而有些同学只记住老师讲解的过程,不懂原理,这部分同学很容易考低分。
②为了避免这种情况,考试时应该出原理一样但题目不一样的试卷,去检验学生是否明白了原理。类比到机器学习的数据集也是一样的:用一部分数据去训练模型,用不同的数据去预测,看看这个模型是否好。

2 思路

  • 确定切分比例
  • 把数据的索引乱序
  • 按乱序的索引取出对应的索引
  • 按索引取数据集

① 把数据的索引乱序

shuffle_indexes = np.random.permutation(len(X))

② 按乱序的索引取出对应的索引

#按什么比例分割
test_ratio = 0.3
#测试集的大小
test_size = int(test_ratio * len(X))
#测试集的索引
test_indexes = shuffle_indexes[:test_size]
#训练集的索引
train_indexes = shuffle_indexes[:test_size]

③ 按索引取数据集

x_test = X[test_indexes]x_train = X[train_indexes]y_test = y[test_indexes]y_train = y[train_indexes]

3 封装成函数

test_ratio:分割比例
seed:随机种子

这里谈一下随机种子:用train_test_split分割的数据集是随机取的,设置确定的值是为了两个可以一样。比如同个数据集,我在我的电脑设置随机种子为10,你们也设置为10分割后我们的数据是一样的

import numpy as np
def Train_test_split(x, y, test_ratio, seed):if seed:'''设置随机种子'''np.random.seed(seed)# 把数据的索引乱序  shuffle_indexes = np.random.permutation(len(x))#按比例分割test_size = int(test_ratio * len(x))#测试集的索引test_indexes = shuffle_indexes[:test_size]#训练集的索引train_indexes = shuffle_indexes[test_size:]#取数据x_train = x[train_indexes]x_test = x[test_indexes]y_train = y[train_indexes]y_test = [test_indexes]return x_train, x_test, y_train, y_test

4 实战一下

① 用鸢尾花数据集实战

from sklearn import datasets
import numpy as np#加载数据
iris = datasets.load_iris()#初始化X_train和y_train
X = iris.data
print('数据集的大小:',X.shape)
y = iris.target

输出:数据集的大小: (150, 4)

② 切分数据集

x_train, x_test, y_train, y_test = Train_test_split(X, y, test_ratio=0.3, seed=66)

输出:
训练集的大小: (105, 4)
测试集的大小: (45, 4)

5 sklearn中train_test_split

① 导入模块

from sklearn.model_selection import train_test_split

② 导入数据集

from sklearn import datasets
import numpy as np#加载数据
iris = datasets.load_iris()#初始化X_train和y_train
X = iris.data
y = iris.target

③分割数据集

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=66)

切分数据集(train_test_split),思路分享及手打代码和介绍sklearn中train_test_split,适合小白入门相关推荐

  1. 400行代码实现双人对战五子棋(适合新手入门)

    400行代码实现双人对战五子棋(适合新手入门) 跟上一篇博客一样,都是看了慕课网的视频之后写的学习记录,记录一下实现的思路,大部分内容比较简单,但也从中学到了很多东西. 按惯例首先看一下效果:(素材都 ...

  2. 阅读源码系列:sklearn中train_test_split使用及源码学习

    引言 最近用到了sklearn中的train_test_split,感觉很好用,想来实现也不是特别复杂,于是想着看一下源码,学习一下大佬的写法 使用方法 >>> import num ...

  3. sklearn中train_test_split函数中的random_state有什么用?

    我们先生成下面的训练数据. import numpy as np from sklearn.model_selection import train_test_split #生成训练数据 x=np.l ...

  4. 【ML】机器学习数据集:sklearn中分类数据集介绍

    目录 1.乳腺癌分类数据集(二分类) 2.鸢尾花分类数据集(三分类) 3.葡萄酒分类数据集(三分类) 4.手写数字分类数据集(十分类) 5.其他数据集 参考资料 在机器学习的教程中,我们会看到很多的d ...

  5. 爱可可推荐!关于竞赛思路,方法和代码实践,Datawhale数据竞赛Baseline开源分享!...

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

  6. 爱可可推荐!关于竞赛思路,方法和代码实践,数据竞赛Baseline开源分享!

    数据竞赛中baseline是最入门的分享, 它不仅有思路.方法还有内容: 或许你与Top选手的差距就是一个baseline! 01 项目介绍 如果你是数据竞赛的初学者.爱好者,比赛的baseline不 ...

  7. WIN10UI—实现思路分享及代码

    WIN10UI-实现思路分享及代码 如下是响应式下的界面: 如果大家想要源码: 点击进入>> 开门见山的说,为什么要把网页做成这种样式呢? 实话说:你们不觉得这样的一个界面去做为我们后台操 ...

  8. 2023年MathorCup 高校数学建模挑战赛-D 题 航空安全风险分析和飞行技术评估问题-思路详解及代码分享

    一.题目简析 背景信息较长,关于航空安全数据的真实背景.其中给出了不少提示需要注意.本质是数据分析题目,难度较低,适合小白. 关键知识:G 值是飞机飞行过程中过载情况的直接反应,在着陆安全分析中,G ...

  9. 2020“东方国信杯”高校大数据开发大赛最终榜第三名思路分享

    2020"东方国信杯"高校大数据开发大赛最终榜第三名思路分享 2020"东方国信杯"高校大数据开发大赛刚刚结束,我所在的队伍"三人运动团"最 ...

最新文章

  1. 笔记本html外接显示器,笔记本
  2. Linux下进程通信的八种方法
  3. spring boot分层_只需5分钟即可启动并运行分层架构:: Spring Boot第1部分
  4. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 25丨求团队人数【难度中等】​
  5. 那个 14 岁上大学、17 岁读博、24 岁当教授的天才神童,如今怎么样了?
  6. Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)
  7. electron入门笔记(三)- 引入bootstrap
  8. 小米平板4刷recovery教程_小米4刷第三方recovery教程和方法
  9. 局部阈值分割法matlab,求matlab图像直方图阈值分割算法(包含预处理步骤)
  10. 计算机房空调设计标准,《数据中心制冷与空调设计标准》的要点
  11. 转载.NET技术-.NET各大网站-编程技术网址 - Road - 博客园
  12. qt编译出错 /usr/bin/ld 找不到 -lGL cannot find -lGL
  13. CSS画五星红旗,我请AutoCAD帮忙
  14. Xshell的一个轻量且免费的替代品ConEmu
  15. 输入法规则(V模式输入)
  16. FusionInsight
  17. 掌握正确的运动姿势,很有必要!
  18. python看门狗(watchdog)、多线程、实现文件夹实时监听、日志输出、备份
  19. meb备份mysql_基于MySQL MEB的备份恢复
  20. 入门知识 | 计算机语言

热门文章

  1. 可分离卷积:空间可分离卷积和深度可分离卷积
  2. js给input赋值后,触发相应函数
  3. android cm12 截屏,LG L24日版移植CM12.1系统三网通用恢复包
  4. CentOS下安装及使用宝塔面板
  5. ES6的import和export
  6. bigrats-go——硕鼠Linux版(Bigrats for Linux)
  7. HDU 2547无剑无我
  8. android 外联wap
  9. 【微信小程序】使用uni-app——开发首页搜索框导航栏(可同时兼容APP、H5、小程序)
  10. solidworks卸载