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