训练集、测试集和验证集
在本文中,我们将学习训练集、测试集和验证集之间的区别。
引言
数据分割是我们可以在机器学习/深度学习任务中使用的最简单的预处理技术之一。原始数据集被分割成子集,例如训练集、测试集和验证集。这样做的主要原因之一是解决过拟合问题。但是,它还有其他好处。让我们简要了解一下这些术语,并看看它们如何发挥作用。
训练集
训练集用于拟合或训练模型。这些数据点用于学习模型的参数。就大小而言,它是所有集合中最大的一组。在监督学习的情况下,训练集包括特征和标签。在无监督学习的情况下,它可以仅仅是特征集。这些标签用于训练阶段以获得训练精度分数。训练集通常占原始数据集的 70%,但可以根据用例或可用数据进行更改。
例如
在使用线性回归时,训练集中的点用于绘制最佳拟合线。
在 K 近邻算法中,训练集中的点是可以作为邻居的点。
训练集的应用
训练集用于数据挖掘中的监督学习程序(即记录分类或连续目标值的预测)。
示例
Let’s consider a dataset containing 20 points Dataset1 = [1,5,6,7,8,6,4,5,6,7,23,45,12,34,45,1,7,7,8,0] Train set can be taken as 60 % of the original Dataset1 The train set will contain 12 data points [8,6,4,5,6,7,23,45,12,34,1,5]
验证集
验证集用于在模型的超参数调整过程中提供对模型拟合的无偏评估。它是用于更改学习过程参数的示例集。针对使用训练集训练的模型测试超参数的最佳值。在机器学习或深度学习中,我们通常需要测试具有不同超参数的多个模型,并检查哪个模型产生最佳结果。此过程借助验证集来执行。
例如,在深度 LSTM 网络中,验证集用于查找隐藏层的数量、节点的数量、密集单元的数量等。
验证集的应用
验证集用于人工智能模型的超参数调整。领域包括医疗保健、分析、网络安全等。
示例
Let’s consider a dataset containing 20 points Dataset2 = [1,5,6,7,8,6,4,5,6,7,23,45,12,34,45,1,7,7,8,0] The validation set can be taken as 20 % of the original Dataset2. The validation set will contain 4 data points [45,1,7,7]
测试集
一旦我们使用训练集训练了模型,并使用验证集调整了超参数,我们就需要测试该模型是否可以很好地泛化到未见数据。为此,使用测试集。在这里,我们可以检查和比较训练精度和测试精度。为了确保模型没有过拟合或欠拟合,测试精度非常有用。如果训练精度和测试精度之间存在很大差异,则可能发生了过拟合。
选择测试集时,应牢记以下几点:
测试应包含与训练集相同的特征。
它应该足够大以产生具有统计意义的结果。
测试集的应用
Test sets are used for evaluating metrics like: Precision, Recall, AUC - ROC Curve, F1-Score
示例
Let's consider a data set containing 20 points Dataset3 = [1,5,6,7,8,6,4,5,6,7,23,45,12,34,45,1,7,7,8,0] The test set can be taken as 20 % of the original Dataset2 The test set will contain 4 data points [6,7,8,0]
为什么我们需要训练集、验证集和测试集?
训练集是训练模型并学习参数所必需的。几乎所有机器学习/深度学习任务都应该至少包含一个训练集。
验证集和测试集是可选的,但强烈建议使用,因为只有这样才能验证训练模型的可读性和准确性。如果我们不选择执行超参数调整或模型选择,则可以省略验证集。在这种情况下,训练集和测试集就可以完成这项工作。
评估模型的一种巧妙方法是使用 K 折交叉验证。
下表总结了训练集、验证集和测试集。
训练集 | 验证集 | 测试集 |
---|---|---|
用于拟合模型以学习模型的参数。 | 用于在模型的超参数调整过程中提供对模型拟合的无偏评估。 | 用于测试模型是否可以很好地泛化到未见数据。 |
大小比验证集和测试集大。 | 较小。 | 大小比训练集小。 |
在监督学习中,它包含特征和标签。在无监督学习中,它只包含特征。 | 在监督学习中包含特征和标签,在无监督学习中只包含特征。 | 在监督学习中包含特征和标签,在无监督学习中只包含特征。 |
在较大的数据集上速度较慢,但可以使用多处理并行运行该作业。 | 如果观察到的超参数很大,则通常在单核上速度较慢。可以并行运行。 | 比训练集和验证集都快。用于根据训练的模型获取测试数据的指标。 |
结论
分割用于训练、验证和测试的数据集是任何机器学习或深度学习用例中的一个核心任务。它非常简单,易于实现,并且可以解决一些非常常见的问题,例如过拟合和欠拟合。