如何为机器学习执行参数调整?

机器算法验证 机器学习 模型选择 火车
2022-03-22 13:07:57

我有一个关于使用网格搜索进行参数调整的非常基本的问题。通常,一些机器学习方法具有需要使用网格搜索调整的参数。例如,在以下 SVM 的标准公式中:

minw12w2+Ci=0Nhinge loss(xi,yi,w)

我们必须调整模型参数C

如果给我训练集和测试集,那么我会首先将训练集拆分为validation_trainvalidation_testvalidation_train使用和调整参数validation_test,然后使用最佳参数,在完整的训练集上重新训练,最后在测试集上执行测试。所以我的问题是以下哪一项平均而言更好?

  1. 使用经过验证的最终模型validation_train进行最终测试会更好吗,因为参数已在此训练集上进行了优化?

  2. 还是使用整个训练集并使用网格搜索中的最佳参数重新训练模型会更好?虽然参数没有针对这组进行优化,但在这种情况下,我们有更多的最终训练数据。

1个回答

鉴于您相信您的验证设置选项 2 是可行的方法。您已执行 CV 以识别最通用的参数设置(或模型选择或您尝试优化的任何内容)。这些发现应该应用于整个训练集并在测试集上测试(一次)。下图说明了我认为在评估和测试机器学习算法的性能时效果很好的设置。

严格 cv 设置的图示