1
嵌套交叉验证后如何建立最终模型并调整概率阈值?
首先,为发布一个已经在这里,这里,这里,这里,这里详细讨论过的问题的道歉,并用于重新加热旧主题。我知道@DikranMarsupial已经在帖子和期刊论文中详细介绍了这个主题,但是我仍然感到困惑,从这里的类似帖子数量来看,这仍然是其他人难以理解的事情。我还应该指出,我在这个话题上的矛盾加剧了我的困惑。您还应该知道我本来是物理学家,而不是统计学家,所以我在这方面的专业知识有限。我正在写一篇期刊论文,其中我想使用嵌套的CV来评估最终模型所期望的性能。在我的领域,这是第一个。(我们几乎从不使用任何是我领域中强大的简历的一种形式,但要用神经网络和增强型决策树的研究成果来愉快地抽出论文!)因此,有一个非常透彻和清晰的理解非常重要,这样我就不会搞砸和传播对我的社区来说是一个错误的过程,可能需要多年才能学会!谢谢!关于这个问题... 嵌套交叉验证后如何构建最终模型? 我正在训练一个具有L1和L2正则化的简单glmnet模型。快速,简单和可解释。我执行特征中心,缩放和Box-Cox转换,以使特征分布均值中心,标准化并且有点像高斯型。我在交叉验证中执行此步骤,以防止信息泄漏。纯粹是因为我的硬件速度非常慢,而且我无法使用更多的CPU资源,所以在特征预处理之后,我还会在CV中执行基于过滤器的快速特征选择。我正在使用随机网格搜索来选择alpha和lambda超参数。我知道我不应该通过CV循环获得此估算值。我知道内部CV回路用于模型选择(在这种情况下,是最佳超参数),而外部回路则用于模型评估,即内部CV和外部CV具有两个不同的用途,这些用途常常被错误地混为一谈。(到目前为止,我还好吗?) 现在,我发布的链接建议“考虑交叉验证的方法是估计使用构建模型的方法获得的性能,而不是估计模型的性能”。鉴于此,我应该如何解释嵌套CV过程的结果? 我读过的建议似乎表明以下问题---如果这是错误的,请纠正我:内部CV是允许我选择glmnet模型的最佳alpha和lambda超参数的机制的一部分。如果我完全按照内部CV中所使用的过程(包括超参数调整)并使用整个数据集构建最终模型,则外部CV会告诉我可以从最终模型中获得的估计值。即,超参数调整是“用于构建模型的方法”的一部分。这是正确的吗?因为这使我感到困惑。在其他地方,我已经看到了构建要部署的最终模型的过程涉及使用固定值对整个数据集进行训练使用CV选择的超参数。在此,“用于建立模型的方法”不包括调整。那是什么呢?在某个时候,将选择最佳超参数并将其固定以构建最终模型!哪里?怎么样?如果我的内循环是CV的5倍,而我的外循环是CV的5倍,并且我在内部CV中选择了100个测试点作为随机网格搜索的一部分,那么我实际训练了几次glmnet模型?(100 * 5 * 5)+ 1作为最终版本,还是我不知道还有更多步骤? 基本上,我需要对如何从嵌套CV解释性能估计以及如何构建最终模型进行非常清晰的描述。 我还想知道选择概率阈值的适当程序,以将最终的glmnet模型的概率分数转换为(二进制)类标签---需要另一个CV循环吗?