模型筛选你好。
我的问题是,我有一个数据集,我想从中分离出 30% 进行测试。我想使用模型筛选来尝试不同的模型,但对于模型的验证部分,我希望所有模型都使用完全相同的测试数据集进行验证。
为此我应该做些什么呢?
预测模型和机器学习回复:模型筛选嗨@maryam_nourmand ,
在固定的训练/验证/测试数据集上获得可重复结果的最简单方法是创建验证列。
- 首先,进入创建验证列的相应菜单:

- 然后您可以指定组或分层(如果需要):

您有几种方法可供选择:这里我使用了与您的需求相对应的默认方法“制作验证列”,并且我使用一些变量作为分层列,以确保我的所有训练、验证和测试集对这些列的值都有相似的分布/重新分配。
-
然后,您可以指定每个集合的数据比率,并指定随机种子以使您的分析具有完美的可重复性。在这里,我选择了固定的验证类型,但您也可以创建一个公式验证列,以便使用与步骤 2 中指定的相同设置(分组、分层等)模拟各种训练、验证和测试集。在这里,我的数据比率为训练 70%、验证 20% 和测试 10%(通常值,有关此主题的更多信息和研究,您可以阅读 V. Roshan Joseph 的论文“数据拆分的最佳比率”: https://arxiv.org/pdf/2202.03326 )。根据评估准确性和所需的模型选择以及可用的数据/行数,找到一个良好的比率折衷方案非常重要。完成后,单击“开始”以在您的表中创建这个新的验证列:

-
最后,启动模型筛选平台,并在“验证”面板中使用您新创建的“验证列”。您还可以在此阶段固定一个随机种子,以便对所使用的不同模型和集合获得可重复的结果:
关于验证和测试这两个术语,需要做一些澄清,因为它们经常被交替使用,并且容易引起混淆:
- 训练集:用于模型的实际训练,
- 验证集:用于模型优化(例如超参数微调、特征/阈值选择等)和模型选择,
- 测试集:用于对所选模型在新/未见数据上的泛化和预测性能评估。
因此,您可以使用验证集评估多个模型,但测试集仅对验证阶段选择的模型使用一次。
希望这个答案能帮助你,
回复:模型筛选谢谢
回复:模型筛选如果您有 JMP Pro,它有一个创建验证列的平台,并且在各种建模平台中,可以指定指示哪些行是训练行、哪些是验证行的列。
如果您拥有标准 JMP,则可以轻松创建验证列,只需在要创建的验证列的公式中使用 Random Uniform() 函数即可。(请确保将该列指定为“字符列”)。
If(randome uniform()>=.7, "Validation", "Training")
创建列后,您将需要转到“列信息”屏幕,并删除使列的值变为静态的公式,确保公式不会再次运行,从而更改值。
然后,您可以在构建模型时排除和隐藏验证行,然后当您想要验证模式时,取消隐藏和排除验证行以及隐藏和排除训练行,然后重新运行模型。