尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

机器学习之数据集划分及验证和测试

机器学习之数据集划分及验证和测试
📅 发布时间:2026/6/20 6:09:28

1. 数据集划分

在标准的机器学习流程中,数据集通常被划分为以下几个主要部分:
1). 训练集 (Training Set)
  • 作用:用于训练模型,即通过学习数据中的特征和模式来优化模型的内部参数。
  • 用途:模型接触的绝大部分数据都在这里,是模型“学习”的基础。
2). 验证集 (Validation Set)
  • 作用:用于在训练过程中调优模型超参数(Hyperparameters),例如神经网络的层数、学习率、树模型的深度等。
  • 用途:验证集的结果指导我们选择最佳的模型配置。它既不直接参与模型的参数优化(训练),也不是最终评估的依据。
3). 测试集 (Testing Set / Holdout Set)
  • 作用:用于对最终确定超参数的模型进行无偏见的最终评估。
  • 用途:测试集的数据必须是模型在训练和验证过程中完全没有接触过的“新”数据。评估结果代表了模型在实际应用中的预期性能。

2. 常见的数据集划分方法

主要有两种策略来划分数据集:
1). 留出法(Hold-out Method / 简单划分)
这是最基础的划分方法,将数据集一次性划分为训练集和测试集(有时也包括验证集)。
  • 划分比例:常见的比例有 80% 训练 / 20% 测试,或者 70% 训练 / 15% 验证 / 15% 测试。
  • 优点:简单、快速、计算成本低。
  • 缺点:划分结果具有随机性,可能导致样本偏差,评估结果不稳定。如果数据集较小,会进一步减少训练数据量。
2). 交叉验证(Cross-Validation, CV)
为了克服留出法的随机性和数据利用率低的问题,交叉验证被广泛使用,其中最常用的是 K 折交叉验证(K-Fold CV)。
  • 方法:
    1. 将数据集随机平均分成 K 个大小相似的子样本(折,Fold)。
    2. 进行 K 次独立的模型训练和评估。每一次,都使用其中 K-1 个子集作为训练集,剩下的那 1 个子集作为验证集(或测试集)。
    3. 最终,将 K 次评估结果取平均值,得到一个更稳定、更可靠的模型性能估计。
  • 优点:数据利用率高,评估结果更稳定、可靠。
  • 缺点:计算成本高,需要训练 K 次模型。
在机器学习领域,验证(Validation)和测试(Testing)是模型开发过程中两个不同且关键的阶段,使用的数据集也不同。
  • 验证(Validation):用于调优模型,在训练过程中选择最佳超参数和模型架构。
  • 测试(Testing):用于评估最终模型的泛化能力,确保其在未见过的新数据上的表现符合预期。
在机器学习和深度学习中,**验证(Validation)**的核心目标是评估模型的泛化能力,并据此调整模型的超参数或进行模型选择。主要的验证方法可以分为以下几大类:
 
1. 标准单次划分验证
这是最基本、最常用的方法,将数据集一次性划分为训练集、验证集和测试集。
  • 数据集划分比例:常见的比例有 70% 训练集,15% 验证集,15% 测试集;或者在深度学习中(数据量很大时),使用 98% 训练集,1% 验证集,1% 测试集。
  • 优点:实现简单,计算成本低。
  • 缺点:验证结果依赖于具体的随机划分方式,如果数据划分不具有代表性,验证结果可能存在偏差。
 
2. 交叉验证 (Cross-Validation, CV)
交叉验证是一种更鲁棒的验证方法,尤其适用于中小型数据集的机器学习模型调优。它通过多次不同的划分来全面评估模型性能。
 
a. K折交叉验证 (K-Fold Cross-Validation)
这是最流行的交叉验证形式。
  • 方法:将训练数据集分成 K 个大小相等的“折”(Fold)。每次训练时,使用 K-1 折作为训练数据,剩下的一折作为验证数据。重复 K 次,每次使用不同的折作为验证集。
  • 结果:最终的模型性能取 K 次验证结果的平均值。
  • 优点:更全面地评估模型性能,减少了划分方式带来的偏差,更好地利用了有限的数据。
  • 缺点:计算成本高,需要训练 K 个模型,在深度学习中很少直接用于调优(耗时太长)。
 
b. 留一法交叉验证 (Leave-One-Out Cross-Validation, LOOCV)
  • 方法:K折交叉验证的特例,K等于样本总数 N。每次只留一个样本做验证,其余 N-1 个样本做训练。
  • 优点:提供了最无偏的性能估计。
  • 缺点:计算成本极高,通常只用于非常小的数据集。
 
c. 分层K折交叉验证 (Stratified K-Fold CV)
  • 方法:确保在每次划分中,训练集和验证集中的类别比例与原始数据集的比例保持一致。
  • 用途:强烈推荐用于处理样本不平衡问题的数据集。
 
3. 时间序列交叉验证 (Time Series Cross-Validation)
  • 方法:对于时间序列数据,不能随机打乱顺序。必须按照时间顺序进行划分,确保模型只能使用过去的数据预测未来的数据(例如,使用 2023 年的数据预测 2024 年 Q1 的数据)。
  • 用途:金融、天气预报等时间依赖性强的数据集。
 
4. 深度学习中的验证方法
在深度学习中,由于模型训练时间长、数据量大,通常使用标准单次划分验证结合早停法:
  • 标准划分 + 早停法 (Early Stopping):在训练过程中,周期性地(例如每个 Epoch 结束时)在验证集上评估模型损失或准确率。如果模型在验证集上的性能连续几个周期没有改善甚至开始下降,就提前停止训练。这既能有效防止过拟合,又能节省大量计算时间。
总结与推荐
  • 传统机器学习(小数据集):优先使用K折交叉验证进行模型选择和超参数调优。
  • 深度学习(大数据集):使用标准单次划分验证集,并结合早停法。

 

相关新闻

  • 2025年靠谱的石塑地板墙板厂家推荐及选择指南
  • 网闸文件交换一体机是什么?一文读懂新型网闸的最新机制
  • 2025年2.0mm养殖防渗土工膜环保材料推荐榜

最新新闻

  • Super Productivity:Docker容器化部署完全指南,打造个人生产力中心
  • HarmonyOS6踩坑记录之卡片开发 @Prop 和 @Link 搞混了?3 个坑帮你彻底搞懂父子组件传值
  • GPT-Image-2渲染产品图全教程:提示词结构、多轮迭代与实测数据
  • doom-ascii控制指南:从基础移动到高级战斗的快捷键全攻略
  • 2026年市场靠谱的工艺品设计趋势平台口碑排行情况
  • DBeaver连接PostgreSQL:界面异常排查与修复实战指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号