训练集、验证集和测试集train、val、test

原文链接

我的个人博客
  在机器学习和模式识别等领域中,一般需要将样本分成独立的三部分训练集(train set),验证集(validation set ) 和测试集(test set)。

区别

  训练集(Training set)模型拟合的数据样本,用来估计模型
  验证集(Cross Validation set) 用来确定网络结构或者控制模型复杂程度的参数
  测试集(Test set),用来检验最终选择最优的模型的性能如何
  在CSDN博主「Kieven2oo8这里看到了一个很好的比喻

  • 训练集-----------学生的课本;学生 根据课本里的内容来掌握知识。
  • 验证集------------作业,通过作业可以知道 不同学生学习情况、进步的速度快慢。
  • 测试集-----------考试,考的题是平常都没有见过,考察学生举一反三的能力。
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 sklearn 进行机器学习建模时,一般需要将数据集分为训练集验证集测试集三部分。训练集用于训练模型,验证集用于调参和评估模型的性能,测试集用于最终评估模型的泛化性能。sklearn 提供了多种用于分割数据集的函数和类,包括 train_test_split、StratifiedShuffleSplit、KFold 等。 下面以 train_test_split 为例,介绍如何使用 sklearn 分割训练集验证集测试集。 首先,导入需要的库和数据集: ```python from sklearn.model_selection import train_test_split from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target ``` 然后,调用 train_test_split 函数进行分割,指定参数 test_size 和 random_state: ```python X_trainval, X_test, y_trainval, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 这里将数据集分成了训练集 + 验证集测试集两部分,其中训练集 + 验证集占原始数据集的 80%,测试集占 20%。random_state 参数用于设置随机种子,确保每次运行代码得到的分割结果一致。 接着,再将训练集 + 验证集分成训练集验证集两部分: ```python X_train, X_val, y_train, y_val = train_test_split(X_trainval, y_trainval, test_size=0.25, random_state=42) ``` 这里将训练集 + 验证集再次分成了训练集验证集,其中训练集训练集 + 验证集的 75%,验证集占 25%。 最后,可以查看数据集的大小: ```python print("训练集大小:", X_train.shape[0]) print("验证集大小:", X_val.shape[0]) print("测试集大小:", X_test.shape[0]) ``` 输出结果为: ``` 训练集大小: 90 验证集大小: 30 测试集大小: 30 ``` 这样就完成了 sklearn 分割训练集验证集测试集的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值