有没有办法用增强树进行 k 倍交叉验证?有没有办法使用增强树平台进行 k 倍交叉验证?
虽然我知道这可以在模型筛选中完成,但我需要使用提供最大性能的 k 倍进行超调。那么,除了使用模型筛选,有没有办法使用增强树预测模型进行 k 倍交叉验证,我还可以对其他参数进行超调?
感谢您花时间回复我。
尼莎
高级统计建模预测模型和机器学习回复:有没有办法用增强树进行 k 倍交叉验证?如果您想使用 K-fold 和增强树,我会尝试使用 XGBoost 应用程序。
JMP Pro 的 XGBoost 插件 - JMP 用户社区
史蒂夫
回复:有没有办法用增强树进行 k 倍交叉验证?嗨@NishaKumar2023 ,
你可以在调整超参数时使用 K 折交叉验证,但它的效果可能并不如你预期的那样。方法如下:
- 创建 K 折验证列(根据您的目标和可重复性需求,可以是固定的,也可以是公式): 启动“制作验证列”平台 (jmp.com)
通过使用分层,确保折叠中的数据拆分具有代表性和平衡性,或者通过使用分组(例如,同一折叠中的相同 ID)确保尊重数据的约束/重复。
- 打开或创建您想要启动的 Boosted Tree(或任何其他平台)的调优数据表。我复制了 Boosted Tree 的示例,但您可以在此帖子中找到@SDF1提供的其他调优表: Bootstrap Forest 中的调优设计表出现故障?
- 启动 Boosted Tree(或任何其他建模平台)时,指定您的输入、对模型的响应,并使用验证面板中的 K-folds 验证列(此处为 Mushroom JMP 数据集):

- 弹出一个新窗口,您必须选中“使用调整表”,然后选择已经打开的调整表:

- 然后您将获得最佳调整模型提供的结果:

请注意,此方法不适用于 K 折交叉验证,因为使用调整表意味着数据仅分为 3 组:
- 训练集:用于模型的实际训练,
- 验证集:用于模型优化(例如超参数微调、特征/阈值选择等)和模型选择,
- 测试集:用于对所选模型在新/未见数据上的泛化和预测性能评估。
因此,如果您在步骤 1 中指定了 5 倍交叉验证,则只有前 3 倍将用作训练、验证和测试集,而不是真正的 5 倍交叉验证技术。要像您打算做的那样进行交叉验证,您需要一个嵌套交叉验证:一个内部交叉验证来调整超参数,一个外部交叉验证来评估找到的超参数值的稳健性,仅在模型筛选平台中可用,并且不接受用于超参数调整的调整表(因为该平台的目标是在各种模型类型中筛选出最有前途的算法,而不是对它们进行微调):

据我所知,这在 JMP 中是不可能的(直接)。
但是您仍然可以在“默认”的增强树上使用 K 折交叉验证,或者尝试使用其他验证技术,按照上述方法(但创建一个具有 3 组的正常公式验证列)并在调整后的模型上使用模拟来评估其稳健性和与未调整模型相比的优势:

您可以看到,在大多数情况下,默认的超参数值运行良好,并且超参数调整对性能变化的帮助更大(与“默认”算法相比,RASE,R-square等性能值在调整后的算法上的范围更窄),而不是最大或平均算法性能。
您可以在此处查看有关此主题的类似帖子和解决方案,以了解验证技术和模拟的使用: 已解决:回复:提升树 - 调整表设计 - JMP 用户社区
嵌套交叉验证通常不是我推荐的第一个选项,因为它需要大量的计算,在内循环的每个折叠上独立地微调算法,然后计算外循环的每个验证折叠的性能。
在没有大量数据的情况下,K 折交叉验证是一种有用的技术,但是嵌套交叉验证仍然需要大量数据才能正确地进行数据拆分:例如,如果将内循环拆分为 4 折,将外循环拆分为 5 折,则需要在数据集中创建 20 个折叠/组!
最后,交叉验证更多的是一种调整技术,而不是一种评估模型稳健性的验证技术,正如 Cassie Kozyrkov 在此视频中精彩描述的那样: https://youtu.be/zqD0lQy_w40 ?si=lja79_aik0KO-jbB
希望这个答案能帮助你,
回复:有没有办法用增强树进行 k 倍交叉验证?@shampton82非常感谢,这使我能够创建 k 折(val)列并运行增强树!
回复:有没有办法用增强树进行 k 倍交叉验证?非常感谢@Victor_G !我发现您的解释非常有帮助,尤其是对于超调的下一步,我能够通过 xgboost 创建 k 倍 val 列并运行增强树,但我需要指导和资源来帮助接下来的几个步骤。谢谢!