机器学习:来自测试数据的训练模型

时间:2018-01-03 06:19:03

标签: machine-learning

我想知道模型是否也会在测试数据的同时对其进行多次评估,从而导致过度拟合的情况。通常我们会将训练数据拆分为train-test分组,我注意到有些人将其分为3组数据 - traintestevaleval用于模型的最终评估。我可能错了,但我的观点是,如果上述情况不正确,那么就不需要eval数据集。

需要澄清一下。

3 个答案:

答案 0 :(得分:1)

评估模型在“野外”中的表现有多好的最佳方法是评估其在未见过的数据集上的表现(即接受过培训) - 假设您在监督学习中有标签问题。

人们将他们的数据分成训练/测试/评估并使用训练数据来估计/学习模型参数和测试集以调整模型(例如,通过尝试不同的超参数组合)。通常基于优化测试度量的超参数组合来选择模型(回归 - MSE,R ^ 2等;分类 - AUC,准确度等)。然后,通常在组合的列车+测试数据集上重新训练所选模型。重新训练后,模型将根据其在评估数据集上的表现进行评估(假设您有一些基本事实标签来评估您的预测)。 eval指标是您报告的泛化指标 - 即模型在新数据上的表现。

这有帮助吗?

答案 1 :(得分:0)

考虑您有训练和测试数据集。训练数据集是您了解输出并在训练数据集上训练模型并尝试预测测试数据集输出的数据集。

大多数人将火车数据集分成火车和验证。首先,您在列车数据上运行模型并在验证集上对其进行评估。然后再次在测试数据集上运行模型。

现在您想知道这将如何帮助和任何使用? 这有助于您了解所看到的数据(验证数据)和看不见的数据(您的测试数据)的模型性能。

这里出现了偏差 - 方差权衡。 https://machinelearningmastery.com/gentle-introduction-to-the-bias-variance-trade-off-in-machine-learning/

答案 2 :(得分:0)

让我们考虑一个二进制分类示例,其中学生之前的学期成绩,体育成就,课外活动等用于预测他是否会通过最后一个学期。

假设我们有大约10000个样本(10000名学生的数据)。

现在我们将它们分开:

训练集 - 6000个样本

验证集 - 2000个样本

测试集 - 1000个样本

训练数据通常分为三个(训练集,验证集和测试集),原因如下:

1)特征选择:假设您已使用某种算法训练了模型。您可以计算训练准确性和验证准确性。您绘制学习曲线并查找模型是否过度拟合或欠拟合并进行更改(添加或删除要素,添加更多样本等)。重复,直到获得最佳验证准确度。现在使用测试集测试模型以获得最终得分。

2)参数选择:当你使用像KNN这样的算法时,你需要找到适合模型的最佳K值。您可以绘制不同K值的准确度,并选择最佳验证准确度并将其用于测试集。 (当你找到随机森林的n_estimators等时同样适用)

3)模型选择:您也可以使用不同的算法训练模型,并通过使用验证集测试精度来选择更适合数据的模型。

因此,验证集基本上可以帮助您评估模型的性能,以便您必须对其进行微调以获得最佳精度。

希望您觉得这很有帮助。