什么是机器学习模型的数据分割?
介绍
机器学习彻底改变了各个行业,使它们能够利用预测分析和智能决策。但是,在机器能够学习之前,它需要数据进行训练。机器学习流程中的一个关键步骤是将可用数据拆分为不同的子集,用于训练、验证和测试目的。本文探讨了机器学习模型的数据分割到底是什么意思,以及为什么它对于模型性能至关重要。
机器学习模型的数据分割
对于大多数传统的机器学习任务,这涉及创建三个主要子集:训练集、验证集(可选)和测试集。本质上,数据分割是指根据特定标准或比例将可用数据集划分为不同的组。
训练集
训练集构成原始数据集的最大部分,并作为模型学习阶段的燃料。我们在模型的训练阶段向算法提供这些标记数据,以便它能够准确地理解特征及其对应标签之间的模式。
训练集 (70%):模型用来从可用数据中学习模式。
验证集
虽然并非总是强制性的,但验证集有助于通过在超参数调整或特征选择过程中评估模型的性能来微调我们的模型。它可以帮助我们避免过拟合——当模型在已知示例上表现良好,但在推广到新示例时表现不佳时。
验证集 (15%):在训练期间使用,用于调整超参数并防止过拟合。
测试集:最后是关键的测试集——一个未见过的子集,仅在我们完全训练完模型后才使用——其目的是评估它在超出仅仅记住训练样本中的信息之外的真实场景中的泛化能力。
测试集 (15%):模型改进后保留用于最终评估目的。
数据分割的重要性
有效的数据分割在实现可靠的机器学习模型中发挥着几个关键作用
性能评估:通过评估在开发阶段未触及的独立测试集上的预测,我们可以估计当呈现新的数据点时,我们的最终模型的准确性和鲁棒性到底有多高。
模型选择:验证集有助于比较多个潜在模型的性能,并选择具有最佳超参数、架构或特征集的模型。这通过在部署之前评估泛化能力来防止过拟合。
避免泄漏:数据分割将纯粹嵌入在训练样本中的信息模式与在验证或测试集中找到的模式分开。它确保我们的模型学习有价值的见解,同时避免意外学习特定于这些子集的信息,而不是问题中固有的潜在关系。
数据分割的最佳实践
为了确保公平的评估并在分割数据时避免偏差结果,必须遵循一些关键准则
随机性:使用适当的随机抽样技术随机分割数据集,以便它们能够代表现实场景。
分层:如果处理不平衡的类别(例如,欺诈检测),则通过使用分层抽样方法在分割中保持类别分布比例。
适当的规模:对于集合大小没有固定的规则;适当的选择取决于各种因素,例如数据集大小、复杂性和可用的计算资源。但是,常见做法建议任务为 70-80% 的训练集,最多 15-20% 的验证集(如果使用),其余 10-20% 作为测试集。
数据分割方法
随机抽样方法
随机抽样方法是数据分割中最常用的技术之一。它将数据集随机划分为训练集、验证集和测试集,并定义比例,例如 70-15-15 或 80-10-10。
这种技术因其简单性而广受欢迎,但如果随机性恰好不成比例地分离特定子集特有的某些模式或特征,则可能会存在潜在的偏差。
分层抽样技术
在处理不平衡数据集时,分层抽样解决了简单随机抽样引入的偏差。通过在生成子集时保持类别分布比例,分层抽样确保每个子集中的人口中所有类别都得到充分表示。
例如,在二元分类问题中,类别 A 构成 90% 的样本,而类别 B 仅占 10%,分层抽样将在每个子集中按比例分配这两个类别——从而减少模型评估期间与类别不平衡相关的问题。
基于时间分割
基于时间分割在创建时间序列数据集中的分区时考虑时间顺序——这在财务预测或天气预报应用程序中很常见——其中较旧的观察结果可能与最近的观察结果相比没有意义。
在基于时间的划分中,数据按时间顺序排序,指定截止点将较早的观察结果用于训练或验证,并将最近的观察结果用于测试。这种方法利用时间依赖性,同时确保对未来时间实例的泛化。
K 折交叉验证
它通过利用迭代重采样技术来减轻传统随机或分层抽样的潜在弱点。数据集被分成“k”个大小相等的分区(通常为 5 或 10),其中每个分区都充当一次验证集,并“k-1”次充当训练集的一部分。
这种技术能够实现更稳健的模型评估,因为它最大限度地减少了过拟合或欠拟合的机会,同时还最大限度地利用数据来学习和评估跨各种子集的性能。
结论
数据分割是成功机器学习建模的必要先决条件。通过利用 K 折交叉验证、分层分割或时间序列分割等高级技术以及 Python 中强大的库(如 scikit-learn (sklearn)),研究人员可以有效地优化模型的性能。正确分割数据对于构建强大的机器学习模型至关重要。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP