label y 训练集测试集x_训练集、测试集 train_test_split
训练集 & 测试集
如果拿所有原始数据来训练,存在的问题:
模型很差无法调整;
真实环境难以拿到真实 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相关推荐
- label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...
导语: 马上就要五一了,祝全世界人民五一快乐!在这之前,想过好几个准备这些天可以完成的专题,比如Boosting系列在搞点最近几年的新玩意,或者开一个新专题,如心心念念的GNN/GCN(主要是又可以去 ...
- python基于训练集预测_Python中训练集/测试集的分割和交叉验证
原标题:Python中训练集/测试集的分割和交叉验证 嗨,大家好!在上一篇关于Python线性回归的文章之后,我认为撰写关于切分训练集/测试集和交叉验证的文章是很自然的,和往常一样,我将对该主题进行简 ...
- SVM 训练--在训练集上acc为94% 在测试集上为70%
用SVM 训练的时候: 出现的问题是: Error: specified nu is infeasible 带有下标的赋值维度不匹配. 百度到的答案:赋值维度不匹配...说明等号两边的大小不一致,导致 ...
- yolov3的训练(五)darknet的VOC测试集和训练集以及训练前准备
VOC测试集和训练集 ################################## 同学们,这个系列的文件不要直接就跟着我操作了,因为这个是踩坑的记录,不是教程,我只是将整个流程记录下 ...
- 数据标准化常见问题:对整个数据集数据标准化后再划分训练集、测试集和先对训练级标准化再将规则用于测试集有什么区别(Python实现)
在数据分析与挖掘.算法建模的都会用到数据标准化.数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间.在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其 ...
- 模型训练时测试集上正确率大于训练集
模型训练时测试集上正确率大于训练集 参考 模型在测试集的准确率大于训练集 神经网络与深度学习-验证集(测试集)准确率高于训练集准确率的原因 一.问题 近日再进行Point Cloud Transf ...
- widerface人脸数据集,yolo训练集格式,voc训练集格式
在wideface官网下载测试集1.2万张和验证集0.3万,直接下载的数据集不符合自己训练集格式要求,需要进行格式转换.YOLO需要TXT格式,有些算法需要voc格式.转换为YOLO格式后进行训练RT ...
- 并查集算法总结专题训练
并查集算法总结&专题训练 1.概述 2.模板 3.例题 1.入门题: 2.与别的算法结合: 3.考思维的题: 4.二维转一维: 5.扩展域并查集&边带权并查集: 4.总结 1.概述 并 ...
- yolov5-6.1的完全使用手册,含模型训练测试(可训练自己的数据集)
安装yolov5 安装命令如下下所示,包含了下载yolov5-6.1,及相关包安装命令.yolov5项目目前已经更新到6.2,支持对图像数据的分类,但使用较为麻烦,因此仅以6.1为例进行说明.安装yo ...
最新文章
- C#用XmlDocument操作XML
- ASP.NET 如何catch存储过程中抛出的异常信息
- Pandas中的 transform() 结合 groupby() 用法示例
- mysql索引优化实际例子_MySQL索引优化的实际案例分析
- 转- Oracle Audit 功能的使用和说明
- 基于深度学习的2D和3D仿射变换配准
- nfs--samba
- linux添加mysql到服务_Linux下将MySQL服务添加到服务器的系统服务中
- git如何添加远程主机_Git由浅入深之远端主机(git remote)
- 体验数学之美——泛函
- linux鼠标手势软件,在Deepin Linux系统使用Easystroke鼠标手势会更方便工作
- eclipse 的preferences下没有server
- Unity 实现2D地面挖洞!涂抹地形
- 最经典最常用的Ecplise快捷键
- 用C语言编写程序,任意输入一个字符串,将其中的字符按从小到大的顺序重排
- GitHub上README.md排版样式教程
- WP Mail SMTP配置谷歌邮箱
- Spring Boot 集成 Swagger2,构建强大的 API 文档
- 剑三服务器维护后蹲宠刷新吗,剑三宠物开服刷新点合集 重置版除奇遇外宠物刷新点一览...
- linksys 打印软件_评论:Linksys WRT1900AC双无线路由器是WRT54G的第二代产品
热门文章
- 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码
- 埋点技术:“呵呵,你在网上的一举一动,都在我眼皮子底下”
- Java Web开发技术详解~MIME类型
- php手机论坛程序,网站开发-php开发手机论坛(8)-编辑帖子
- python 除法取模_跟我一起学python | 探究05
- 现代软件工程 10 绩效管理
- delphi gui编辑工具源码_Python 快速构建一个简单的 GUI 应用
- python对象的三个属性_Python 对象属性的访问
- python元祖用法_Python序列(列表list和元组tuple)用法完全攻略
- JAVA入门级教学之(参数传递)