一种支持交叉验证您好,我想对随机森林进行一次保留交叉验证,但我不知道 JMP pro 是否有此选项。 如果有的话在哪里可以找到呢?
预测建模和机器学习回复:一个人坚持交叉验证啊啊,谢谢你@Victor_G为了引导我完成这个过程,我现在发现模型筛选平台内的引导森林使用的默认设置不适合该表,导致结果丢失。
回复:一个人坚持交叉验证你好@ih ,
是的,消息本身没有问题(因为它不会停止分析),但根据您使用的数据表,您可能会到处都是空格,而不是预期的结果(请参见屏幕截图“Error_RandomForest_Model-screening_LOOcrossval”)具有留一法交叉验证的房价数据集)。
正如我之前提到的,当我使用带有验证公式列的“常规”Bootstrap Forest 平台(在验证中使用单个观察进行留一交叉验证)并选中“提前停止”选项时,我遇到了同样的问题,所以这可能与模型筛选平台存在同样的问题,其中“提前停止”选项可能默认处于选中状态。
你可以看一下附上的房价表,里面有几个脚本来说明提到的问题:
- “模型筛选价格随机森林”:为了说明“模型筛选”平台没有显示结果的问题,
- “Bootstrap Forest of Price (with Early Stopping)”:为了说明平台“Bootstrap Forest”在勾选“Early Stopping”时出现的类似错误问题,
- “Bootstrap Forest of Price (without Early Stopping)”:为了说明我的回复中显示的解决方案以及 Chris Gotwalt 在他的示例中完成的解决方案,
- “Rsquare 训练留一法”和“列贡献(部分)留一法”:显示使用此方法和留一法交叉验证创建的数据表。
希望我提到的问题现在更清楚了。
取决于数据集@tuo88138 ,有两种方法可供选择来实现留一交叉验证。
回复:一个人坚持交叉验证你好@Victor_G ,我不认为这是一个错误,只是一条警告消息。我认为不可用的方法不会影响这个分析。
回复:一个人坚持交叉验证你好@ih ,
从我的角度来看,使用“模型筛选”和您提出的设置确实适用于 K 折交叉验证,但并不总是适用于留一法(取决于数据集)。
如果我指定 K = 观察数,即使在“方法”面板中仅选中 Bootstrap Forests,也会出现一条错误消息“每个折叠内的验证集太小,无法支持某些方法”。 因此,我也考虑过使用“模型筛选平台”,但可能不可能,具体取决于数据集(在使用此方法的“波士顿房价”数据集上,我没有折叠的摘要以及每个折叠详细信息中的缺失值)。 它确实适用于“Big Class”数据集。
你好@tuo88138
您可以按照 Chris Gotwalt 描述的方法进行操作,我刚刚测试过,效果非常好。 您可能必须在 Bootstrap Forest 分析面板中取消选中“Early Stopping”,以避免输出中不同指标(Rsquare、RASE 等)出现“空白值”。
这种技术可以很有趣地比较多个模拟中变量的贡献重要性(请参阅随附的捕获“Contribution-importance_simulations”),或者提供一些指标的置信区间,例如 Rsquare(请参阅捕获“Confidence_Intervals_Rsquare”以在相同的数据集上训练 Rsquare)模拟次数)。
希望这个回答对你有帮助
回复:一个人坚持交叉验证模型筛选平台实际上使这变得非常简单,只需将“折叠交叉验证”部分中的 K 设置为等于活动行数即可。

在报告的“详细信息”部分中查找每个折叠的详细信息,如果您想知道哪一行与哪个折叠相关,可以打开“训练”部分,选择与该折叠对应的行,然后按表格下的“保存所选脚本” 。表中将添加一个新列,用于指示验证行。
回复:一个人坚持交叉验证是的,我做到了。 问题是这样的:我的数据集很小,所以我需要使用省略一个
回复:一个人坚持交叉验证是的,正好省略一个
回复:一个人坚持交叉验证你好@tuo88138 ,
作为@马克贝利建议,您可以查看随机森林模型背后的文档和信息,因为该模型已经很强大,并且由于使用了引导过程,因此不需要特别需要交叉验证:
- 随机森林模型通过平均许多决策树来拟合集成模型,每个决策树都适合训练数据的引导样本。 由于引导是在训练数据上完成的,因此并非所有数据都用于构建单个树,因此在创建单个树时未使用的样本(称为“袋外”(OOB)样本)用于估计模型中的误差,并且也可用于评估随机森林中每棵树的性能:每棵树摘要 (jmp.com)
但是,如果您有兴趣使用各种训练和验证样本多次重新启动随机森林平台,可以通过以下方式执行此操作:
- 在数据集中创建验证公式列(您可以指定每个集合的大小,因此您可以执行类似于 K 折交叉验证或留一验证的操作),
- 创建随机森林模型并在菜单的“验证”部分中指定验证公式列。
- 模型拟合后,您可以右键单击要通过交叉验证评估的任何指标(例如,用于训练和验证集的 Rsquare 或 RASE,或者列贡献中的平方和,以查看重要因素是否仍然存在)无论训练/验证集如何,排名方式都相同),然后单击“模拟”。 “要切换的列”将是您的验证公式列,也是“要切换的列”(以便生成和交换各种训练和验证集)。 您还可以指定要运行的模拟次数,如果您计划进行可重现的模拟,则可以指定随机种子。
- 将创建一个新的数据表,其中包含已完成的单个模拟和结果。
整个过程可以在 Chris Gotwalt 的演讲中看到:不同的目标,不同的模型:如何使用模型来尖锐化你的问题...... - JMP 用户社区(约17分钟)
随机森林的交叉验证在 JMP 中确实是可能的,但随机森林是对混乱/噪声数据具有鲁棒性的模型,并且由于引导而在小数据集上准确,因此除非您有使用此交叉验证的特定想法,您可以使用模型“按原样”获得良好的准确性估计(使用 OOB 样本)和可靠的结果。
希望这个回答对你有帮助
回复:一个人坚持交叉验证你读过文档吗引导森林楷模?
回复:一个人坚持交叉验证当您说“...保留交叉验证...您的意思是更常见的“留一”吗?