验证集和测试集的区别

训练集用于模型参数,测试集用于估计模型对样本的泛化误差,验证集用于“训练”模型的超参数。

我们知道一个机器学习模型通常包括两个部分的参数:模型参数和超参数。其中超参数是用于控制模型行为的超参数,这些参数不是通过模型本身学习而来的。例如多项式回归模型里面,多项式的次数,学习速率是超参数。这些超参数不能由模型本身训练得到,是因为模型会倾向把参数训练的过大或者过小,从而极容易导致过拟合。例如多项式回归模型里面。如果让模型本身去训练多项式的次数,那么模型会选择高次多项式,因为这样做误差可以取到特别小,极端情况下,N个点的多项式回归会选择次数N。然而这些超参数,也会有不同的选择,例如学习速率可以选择0.1, 0.01, 1, 10···那么我们怎么知道超参数的某个值比另外一个好呢?一个很自然的想法是我们可以选择不同的超参数值,然后跑在同一个训练集上再看看最后的结果。

相关推荐