选择具有最佳超参数的性能最佳的机器学习模型,有时甚至在生产后仍会导致性能较差。这种现象可能是由于在同一组训练和测试数据上调整模型并评估其性能而导致的。因此,更严格地验证模型可能是取得成功结果的关键。
在本文中,我们将简要讨论并实现一种技术,该技术在宏伟的事物中可能会引起应有的关注。先前的陈述来自一个观察到的问题,即与模型构建阶段的性能相比,某些模型在生产中表现不佳是一个众所周知的问题。尽管存在大量潜在的问题根源,但常见的原因可能在于模型选择过程中。
标准模型选择过程通常将包括一个超参数优化阶段,在该阶段中,将通过使用验证技术(例如k折交叉验证(CV)),根据验证结果选择“最佳”模型验证测试。但是,此过程容易受到选择偏见的影响,这使其在许多应用中不可靠。
“在机器学习研究中偶尔观察到的带有偏见的评估协议中,初始模型选择步骤是使用所有可用数据执行的,通常作为“初步研究”的一部分进行交互。然后将数据重复重新分区,以形成一对或多对随机,不相交的设计和测试集。然后使用相同的一组固定的超参数值将它们用于性能评估。乍一看,这种做法似乎是无害的,但是测试数据不再是统计纯的,因为模型在调整超参数时已经“看到”了它们。
为了说明为什么会发生这种情况,让我们使用一个示例。假设我们正在执行机器学习任务,其中我们基于n轮超参数优化选择模型,并通过使用网格搜索和交叉验证来做到这一点。现在,如果在第n次迭代的每一次迭代中使用相同的训练和测试数据,则意味着通过选择超参数将测试集上的性能信息合并到训练数据中。在每次迭代中,此信息都可以由过程利用以找到性能最佳的超参数,从而导致测试数据集不再纯粹用于性能评估