JMP Pro18 中的引导森林有变化吗?多年来,我已经在许多不同的数据集(包括连续型和名义型响应变量)上使用引导森林算法,并且我大致了解该算法的设置——我通常使用默认值。我对随机(引导森林)算法的理解是,每棵树都使用随机选择的因子和随机选择的观测值(有放回)来运行。过去,当我观察单棵树时,总会发现有些树只使用几个变量,树结构非常稀疏——而其他树则要复杂得多。在教学中,我曾用这种方法来说明单棵树通常缺乏意义——只有取平均值才能产生良好的预测。
但是,当我在 JMP Pro 18 中运行引导森林模型时,我使用的每个数据集都显示了包含数百个分裂的树。以前总是会有一些分裂数少于 10 个的树,但现在根本没有简单的树。实现模型的方法改变了吗?
预测模型和机器学习回复:JMP Pro18 中的引导森林有变化吗?你好@dlehman1
引导森林平台通过对多棵决策树进行平均来拟合集成模型,每棵决策树都拟合训练数据的引导样本(有放回)。每棵树的每次拆分都考虑了预测变量(来自引导森林)的随机子集。
训练样本选择和特征子集选择的随机性可以降低过度拟合的风险(通过根据略有不同的训练数据创建多个独立树),提高准确性和对噪声的鲁棒性,并能够处理缺失值、异常值和相关特征/共线性(得益于每棵树每次分裂时的子集特征选择)。
关于你最初的问题,由于我的电脑上已经没有 JMP 17 了,所以无法比较结果。关于JMP 17和JMP 18中关于启动 Bootstrap Forest 时使用的默认超参数的文档,默认设置似乎没有区别。
如果单个树看起来太复杂,您可以修改一些默认的超参数:
- 每棵树的最小分裂数:默认情况下为 10,但在小型数据集上,我倾向于将此值减小到 2。每棵树的最小分裂数较大时往往会创建复杂的单个树,这可能没有好处,而且容易过度拟合。
- 每棵树的最大分割数:默认情况下为 2000,但任何一棵树上的最大分割数 2000 都太多了(可能会导致之前提到的类似问题)!我倾向于根据数据集的大小和任务的复杂性来降低这个值,大约在 100-1000 之间。
- 最小分割尺寸:默认情况下为 5(具有候选分割的最小样本数),但在小型数据集上它可能不相关(并且您可能会减少这个数字,即使这可能会导致更高的过度拟合风险),而在更大的数据集上您可能希望增加这个值以增加每棵树的稳健性。
- 早期停止:如果您使用了验证集,请确保选中此选项,以确保如果验证指标没有随着新树的创建而改善,则停止树的创建。
抱歉,您的问题没有更精确/明确的答案,您有截图、数据集或其他东西来显示差异吗?这可能有助于调试。
最好的,
回复:JMP Pro18 中的引导森林有变化吗?您的描述与我的理解完全一致,而且我很清楚这些调整参数将如何影响构建的树。我找不到以前的例子,但我知道我已经向课堂证明了单棵树的划分毫无意义,而对独立树进行平均正是引导森林成为良好预测因子的关键所在。然而,描述中似乎与最终构建的树不一致的部分是“每棵树的每次分裂都考虑了预测因子的一个随机子集”。我预期每棵树中的预测因子不仅在随机选择上会有所不同,而且在选择的数量上也会有所不同。这似乎与我以前从引导森林中得到的结果相符——有些树使用2个预测因子,有些使用10个,等等。现在,所有树似乎都有相同数量的分裂(这样一来,每棵树使用的预测因子数量也差不多)。而且,在我查看的所有数据集中(中等大小,大约10K到100K行),分裂的数量都在数百个左右。我知道以前我见过一些只有几处裂缝的树——现在再也找不到了。所以我才问这个问题。
回复:JMP Pro18 中的引导森林有变化吗?你好@dlehman1 ,
我尝试使用两个示例数据集,Diamonds Data.jmp(回归任务)和Mushroom.jmp(分类任务)。
我在回归任务中也得到了和你一样的印象,即使使用了超参数,单个树也相当复杂。然而,在分类任务中,我得到了更简单、更令人满意的单个树,并且深度和复杂度各不相同:

因此,它不会直接回答您关于 JMP 版本之间引导森林算法可能发生的变化的问题(这可能是 JMP 技术人员@Mark_Bailey最好的回答),但我认为单个树的复杂性与任务所需的精度(回归相当于非常大的类与分类)和可用数据(数量和质量)有关。
希望这个答案仍然能帮助你,
回复:JMP Pro18 中的引导森林有变化吗?我附上了一个不同的例子:规模和蘑菇数据集相似,分类模型也相似,变量数量也相似(但有一些连续因子,而蘑菇数据集的所有因子都是名义上的)。引导森林中的树都有数百个分支。我仍然感到困惑。
回复:JMP Pro18 中的引导森林有变化吗?我不直接支持这个平台,所以无法立即提供解释或帮助。我目前正致力于完成 JMP 19 新平台和新功能的开发,所以我认为最快的方法是联系 JMP 支持 ( support@jmp.com ) 寻求答案。如果您有任何意见或建议,请在此处回复。
回复:JMP Pro18 中的引导森林有变化吗?大家好,
到目前为止,我们的测试尚未发现 JMP 17 和 18 版本之间存在任何方法学差异的证据。如果您对所观察到的行为有任何疑问或担忧,请继续将其发送至support@jmp.com ;如果可能,请提供一个或多个示例附件,说明树状图拆分行为与预期行为有何不同;我们很乐意继续测试并进行进一步调查。
-JMP技术支持
回复:JMP Pro18 中的引导森林有变化吗?JMP 支持又来了!我得到不同结果的原因如下:
“每次分割采样的术语数”的“旧”默认值(16 之前)为 floor(nX/4),其中 nX 是输入的 X 变量的数量。
我原以为 JMP 17 到 JMP 18 的行为有所改变,但显然更早。我没有注意到,在我的例子中,每次拆分采样的项默认值为 1,而在 JMP 18(显然还有 17、16 和 15)中默认值为 5。这解释了差异。