《从机器学习到深度学习》笔记(4)划分数据集

简介: 任何机器学习算法都是基于对已有数据集或环境的信息挖掘,要求将从现有数据学习得到的模型能够适配于未来的新数据。

任何机器学习算法都是基于对已有数据集或环境的信息挖掘,要求将从现有数据学习得到的模型能够适配于未来的新数据。

1. 训练集(Training set)与测试集(Test set)

很自然的,在评估模型能力的时候需要采用与模型训练时不同的数据集,因此在训练模型之前需要将已有数据集划分成如图1-13的两部分。

图1-13 训练集与测试集

顾名思义,图中的训练集用于在训练模型时使用,测试集用于评估模型准确率。一般训练集与测试集一旦划分就无需再变动,因为只有稳定的测试集才能用来衡量不同模型的准确率。一旦重新划分两个集合,那么需要重新训练所有模型并在新的测试集上进行评估。

2. 随机采样(Random Sampling)

一般来说两个集合的划分需加入随机因子,使得每个数据项有相等的机会被分到任一集合中。如不加入随机因子,可能出现类似这样的问题:

数据整体是一年的按时间排序的皮大衣销售数据。不用随机采样策略的话,划分后训练集中只包括春、夏两季的用户数据;而测试集中是秋、冬季的数据。此时用春、夏季数据训练的模型明显无法很好地预测秋、冬季销售情况。

同理,如果医疗诊断系统中训练集与测试集有不同的病人年龄层分布,那也无法训练出适配所有年龄层次人的诊断模型。

3. 分层采样(Stratified Sampling)

划分数据集时的另一个常见陷阱是每种标签的数据没有均匀的被划分到训练集与测试集中。比如在医疗诊断系统中,如果将健康人群都分到了训练集,而有病况的人群都被分到了测试集,那么训练出的模型肯定会漏诊,即将有病况的人预测为健康人。

所谓的分层采样就是一种在划分训练/测试集时保持标签数据比例的采样规则,如图1-14所示。

图1-14 分层采样

图中圆形、三角形、菱形分别代表三种数据标签,分层采样的要求是将所有类型的标签等比例的划分到不同数据集中。

4. 验证集(Validation set)

验证集是在某个模型的学习过程中用来调试超参数的数据集。因为大多数算法有可配超参数(如神经网络层数、EM类算法的最大迭代数等),所以验证集在机器学习领域也很常见,其作用如图1-15所示。

图1-15 训练集、验证集与测试集

图1-15中将图1-13的训练集又拆分成两部分,成为训练集和验证集。验证集的作用是在调试算法参数的不断“训练-验证”迭代中验证参数的性能,以达到选择正确超参数的目的。因为验证集只在备选算法学习时内部使用,可以对每个备选算法选取各自独立的验证集。

如有足够多的已有数据,划分三个子集的整体数量保持如下不等式关系可以提高模型的泛化能力:

训练集数量< 验证集数量 < 测试集数量

也就是说当从小数据集训练出的模型能够适配比其大的数据集时,才能更有把握的相信其学习到了一个普遍适用的知识。

从机器学习,到深度学习

从深度学习,到强化学习

从强化学习,到深度强化学习

从优化模型,到模型的迁移学习

一本书搞定!

相关文章
|
19小时前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
22 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
25天前
|
机器学习/深度学习 人工智能 算法
探索AI的魔法:机器学习与深度学习的奥秘
【8月更文挑战第27天】在这篇文章中,我们将深入探讨人工智能的两个重要分支:机器学习和深度学习。我们将首先理解它们的基本概念,然后通过Python代码示例,展示如何应用这些技术解决实际问题。无论你是AI新手,还是有经验的开发者,这篇文章都将为你提供新的知识和启示。让我们一起开启这场AI的魔法之旅吧!
|
25天前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习模型训练的最佳实践
【8月更文第27天】随着深度学习应用的广泛普及,高效利用GPU硬件成为提升模型训练速度的关键。PyTorch 是一个强大的深度学习框架,它支持动态计算图,易于使用且高度灵活。CUDA (Compute Unified Device Architecture) 则是 NVIDIA 开发的一种并行计算平台和编程模型,允许开发者直接访问 GPU 的并行计算能力。本文将详细介绍如何利用 PyTorch 与 CUDA 的集成来加速深度学习模型的训练过程,并提供具体的代码示例。
57 1
|
12天前
|
机器学习/深度学习 人工智能 自动驾驶
探索人工智能的未来:机器学习和深度学习的融合之旅
本文将带你进入人工智能的奇妙世界,一起探索机器学习和深度学习的融合如何引领我们走向更加智能化的未来。我们将从基础概念出发,逐步深入到技术细节和应用实例,揭示这一技术革新如何改变我们的生活和工作方式。通过深入浅出的解释和生动的例子,本文旨在为读者提供一次内容丰富、启发思考的技术之旅。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
25 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:从机器学习到深度学习
本文将探讨人工智能的发展历程,特别是机器学习和深度学习的兴起。我们将深入了解这些技术如何改变我们的生活,并讨论未来的发展趋势。
30 1
|
1月前
|
机器学习/深度学习 算法 数据挖掘
深度学习之量子计算加速的机器学习
深度学习的量子计算加速机器学习是一种新兴的跨领域研究方向,旨在利用量子计算的独特特性来加速和优化传统机器学习模型,特别是深度学习模型。量子计算具有在处理特定类型问题时指数级加速的潜力,结合深度学习可以带来性能和效率的显著提升
35 1
|
20天前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
34 0
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!