训练集 & 测试集

如果拿所有原始数据来训练,存在的问题:

模型很差无法调整;

真实环境难以拿到真实 label;

所以将数据区分为 训练数据 和 测试数据(train test split);

将训练数据来训练模型;然后用测试数据测试模型;

使用这种方式也存在问题;

python 原生分离 iris 数据集

import numpy as np

from sklearn import datasets

import matplotlib.pyplot as plt

iris = datasets.load_iris()

X = iris.data

y = iris.target

X

'''

(array([[5.1, 3.5, 1.4, 0.2],

[4.9, 3. , 1.4, 0.2], ...

[6.2, 3.4, 5.4, 2.3],

[5.9, 3. , 5.1, 1.8]])

'''

y

'''

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,

1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,

2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

'''

X.shape, y.shape #((150, 4), (150,))

# shuffle

shuffle_indexes = np.random.permutation(len(X)) # 0--len(X) 的随机排列

shuffle_indexes

# array([ 22, 4, 142, 24, 7, 146, ... 9, 95, 130, 29, 124])

test_ratio = 0.2

test_size = int(len(X) * test_ratio)

test_size # 30

test_indexes = shuffle_indexes[:test_size]

train_indexes = shuffle_indexes[test_size:]

test_indexes

'''

array([ 22, 4, 142, 24, 7, 146, 70, 77, 144, 14, 40, 119, 46, 85, 74, 87, 86, 60, 91, 120, 78, 45, 65, 105, 113, 39, 83, 80, 134, 16])

'''

X_train = X[train_indexes]

y_train = y[train_indexes]

X_test = X[test_indexes]

y_test = y[test_indexes]

X_test.shape, X_train.shape # ((30, 4), (120, 4))

封装 train_test_split 函数

def train_test_split(X, y, test_ratio=0.2, seed=None):

assert x.shape[0] == y.shape[0], "the size of X must be equal to the size of y"

assert 0.0 <= test_ratio <= 1.0, "test_ ration must be valid"

if seed:

np.random.seed(seed)

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

test_size = int(len(X) * test_ratio)

test_indexes = shuffle_indexes[:test_size]

train_indexes = shuffle_indexes[test_size:]

X_train = X[train_indexes]

y_train = y[train_indexes]

X_test = X[test_indexes]

y_test = y[test_indexes]

return X_train, y_train, X_test, y_test

sklearn 中的 train_test_split

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y)

train_test_split(*arrays, **options)

X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42)

label y 训练集测试集x_训练集、测试集 train_test_split相关推荐

  1. label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...

    导语: 马上就要五一了,祝全世界人民五一快乐!在这之前,想过好几个准备这些天可以完成的专题,比如Boosting系列在搞点最近几年的新玩意,或者开一个新专题,如心心念念的GNN/GCN(主要是又可以去 ...

  2. python基于训练集预测_Python中训练集/测试集的分割和交叉验证

    原标题:Python中训练集/测试集的分割和交叉验证 嗨,大家好!在上一篇关于Python线性回归的文章之后,我认为撰写关于切分训练集/测试集和交叉验证的文章是很自然的,和往常一样,我将对该主题进行简 ...

  3. SVM 训练--在训练集上acc为94% 在测试集上为70%

    用SVM 训练的时候: 出现的问题是: Error: specified nu is infeasible 带有下标的赋值维度不匹配. 百度到的答案:赋值维度不匹配...说明等号两边的大小不一致,导致 ...

  4. yolov3的训练(五)darknet的VOC测试集和训练集以及训练前准备

    VOC测试集和训练集     ################################## 同学们,这个系列的文件不要直接就跟着我操作了,因为这个是踩坑的记录,不是教程,我只是将整个流程记录下 ...

  5. 数据标准化常见问题:对整个数据集数据标准化后再划分训练集、测试集和先对训练级标准化再将规则用于测试集有什么区别(Python实现)

    在数据分析与挖掘.算法建模的都会用到数据标准化.数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其 ...

  6. 模型训练时测试集上正确率大于训练集

    模型训练时测试集上正确率大于训练集 参考 模型在测试集的准确率大于训练集 神经网络与深度学习-验证集(测试集)准确率高于训练集准确率的原因 一.问题   近日再进行Point Cloud Transf ...

  7. widerface人脸数据集,yolo训练集格式,voc训练集格式

    在wideface官网下载测试集1.2万张和验证集0.3万,直接下载的数据集不符合自己训练集格式要求,需要进行格式转换.YOLO需要TXT格式,有些算法需要voc格式.转换为YOLO格式后进行训练RT ...

  8. 并查集算法总结专题训练

    并查集算法总结&专题训练 1.概述 2.模板 3.例题 1.入门题: 2.与别的算法结合: 3.考思维的题: 4.二维转一维: 5.扩展域并查集&边带权并查集: 4.总结 1.概述 并 ...

  9. yolov5-6.1的完全使用手册,含模型训练测试(可训练自己的数据集)

    安装yolov5 安装命令如下下所示,包含了下载yolov5-6.1,及相关包安装命令.yolov5项目目前已经更新到6.2,支持对图像数据的分类,但使用较为麻烦,因此仅以6.1为例进行说明.安装yo ...

最新文章

  1. C#用XmlDocument操作XML
  2. ASP.NET 如何catch存储过程中抛出的异常信息
  3. Pandas中的 transform() 结合 groupby() 用法示例
  4. mysql索引优化实际例子_MySQL索引优化的实际案例分析
  5. 转- Oracle Audit 功能的使用和说明
  6. 基于深度学习的2D和3D仿射变换配准
  7. nfs--samba
  8. linux添加mysql到服务_Linux下将MySQL服务添加到服务器的系统服务中
  9. git如何添加远程主机_Git由浅入深之远端主机(git remote)
  10. 体验数学之美——泛函
  11. linux鼠标手势软件,在Deepin Linux系统使用Easystroke鼠标手势会更方便工作
  12. eclipse 的preferences下没有server
  13. Unity 实现2D地面挖洞!涂抹地形
  14. 最经典最常用的Ecplise快捷键
  15. 用C语言编写程序,任意输入一个字符串,将其中的字符按从小到大的顺序重排
  16. GitHub上README.md排版样式教程
  17. WP Mail SMTP配置谷歌邮箱
  18. Spring Boot 集成 Swagger2,构建强大的 API 文档
  19. 剑三服务器维护后蹲宠刷新吗,剑三宠物开服刷新点合集 重置版除奇遇外宠物刷新点一览...
  20. linksys 打印软件_评论:Linksys WRT1900AC双无线路由器是WRT54G的第二代产品

热门文章

  1. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
  2. 埋点技术:“呵呵,你在网上的一举一动,都在我眼皮子底下”
  3. Java Web开发技术详解~MIME类型
  4. php手机论坛程序,网站开发-php开发手机论坛(8)-编辑帖子
  5. python 除法取模_跟我一起学python | 探究05
  6. 现代软件工程 10 绩效管理
  7. delphi gui编辑工具源码_Python 快速构建一个简单的 GUI 应用
  8. python对象的三个属性_Python 对象属性的访问
  9. python元祖用法_Python序列(列表list和元组tuple)用法完全攻略
  10. JAVA入门级教学之(参数传递)