0

我正在尝试优化 sklearn 中分类器和回归方法的超参数。我有一个问题。为什么在评估结果时,例如选择最佳训练准确度,而不是在测试中评估此结果,并用其他训练准确度迭代其他值以获得最佳测试准确度?因为显然最佳训练精度的参数与最佳测试精度的参数不同。

谢谢!

4

1 回答 1

0

当我们训练模型时,我们通常将数据分为训练集、验证集和测试集。让我们看看每组的建议是什么

训练集:模型使用它来学习其参数。通常模型会降低其在训练集上的成本,并选择给出最小成本的参数。

验证集:顾名思义,验证集用于验证该模型在尚未看到的数据上也能表现良好。这让我们相信模型没有记住训练数据并且在训练数据上表现非常好,但在新数据上表现不佳。如果模型足够复杂,则模型可能会记住训练数据以提高其在训练集上的性能,但在验证数据上却不是很好。

通常我们使用交叉验证,我们将训练集分成 n 个相等的部分,然后对于每次迭代,我们选择一个部分作为验证,其余部分作为训练集。

测试集:测试集被搁置,仅在我们对我们的模型感到满意时才使用,以估计您的最终模型在野外新数据上的表现如何。与验证集的一个主要区别是它不以任何方式用于改进或更改模型或改进模型,但验证集帮助我们选择最终模型。我们这样做是因为我们不想要一个偏向于测试数据但在野外数据中表现不佳的模型。

于 2019-09-17T16:39:42.027 回答