决策树:逐叶(最佳优先)和逐层树遍历


14

问题1:

对LightGBM对树的扩展方式的描述感到困惑。

他们声明:

大多数决策树学习算法都是按级别(深度)逐级增长树,如下图所示:

在此处输入图片说明

问题1:哪种“最多”算法以这种方式实现?据我所知C4.5和CART使用DFS。XGBoost使用BFS。哪些其他算法或软件包将BFS用于决策树?

问题2:

LightGBM指出:

LightGBM按叶子方向(最佳优先)生长树,它将选择具有最大delta损失的叶子进行生长。当生长相同的叶子时,与逐级算法相比,逐叶算法可以减少更多的损失。

在此处输入图片说明

问题2:说水平生长树的所有叶子具有相同的深度是否正确?

问题3:如果问题2不正确,则遍历结束时(不进行修剪等),从水平和叶子方向生长的树将看起来相同。这是正确的说法吗?

问题4:如果问题3是正确的,“叶级算法比级算法可以减少更多的损失”怎么办?它与修剪后的算法有关吗?

Answers:


11

如果您生长整棵树,则最好的优先(叶方式)和深度优先的(水平方式)将导致同一棵树。区别在于树的扩展顺序。由于我们通常不会将树木生长到最大深度,因此顺序很重要:应用早期停止条件和修剪方法可能会导致树木完全不同。因为逐叶选择拆分是基于它们对全局损失的贡献而不仅仅是基于特定分支的损失,所以它常常(并非总是)比“逐层”学习“错误”树。即,对于少数节点,逐层叶子的性能可能会优于逐层叶子的性能。随着您添加更多节点,无需停止或修剪它们,它们将收敛到相同的性能,因为它们最终将在字面上构建相同的树。

参考:

Shi,H.(2007)。最佳优先决策树学习(论文,理学硕士(MSc))。怀卡托大学,新西兰汉密尔顿。取自https://hdl.handle.net/10289/2317


编辑:关于您的第一个问题,C4.5和CART都是深度优先的示例,而不是最佳优先的示例。以下是上述参考中的一些相关内容:

1.2.1标准决策树

诸如C4.5(Quinlan,1993)和CART(Breiman et al。,1984)的标准算法用于决策树的自上而下的归纳,使用分而治之策略在每个步骤中以深度优先顺序扩展节点。通常,在决策树的每个节点上,测试仅涉及单个属性,并且将属性值与常量进行比较。标准决策树的基本思想是,首先,选择一个要放置在根节点上的属性,并根据一些条件(例如信息或基尼索引)为此属性创建一些分支。然后,将训练实例划分为子集,每个分支从根节点延伸一个。子集的数量与分支的数量相同。然后,仅使用实际到达分支的实例,对选定的分支重复此步骤。固定顺序用于扩展节点(通常从左到右)。如果任何时候节点上的所有实例都具有相同的类标签(称为纯节点),则拆分将停止,并将该节点制成终端节点。这个构造过程一直持续到所有节点都纯净为止。然后进行修剪过程以减少过度拟合(请参阅第1.3节)。

1.2.2最佳优先决策树

到目前为止,似乎只有在增强算法的情况下才进行了评估(Friedman等,2000),另一种可能性是以最佳优先顺序而不是固定顺序扩展节点。此方法在每个步骤中将“最佳”拆分节点添加到树中。“最佳”节点是最大程度减少所有可拆分节点(即未标记为终端节点)中的杂质的节点。尽管这会产生与标准深度优先扩展相同的完全生长的树,但它使我们能够研究使用交叉验证选择扩展数量的新树修剪方法。可以通过这种方式执行预修剪和后修剪,这使得它们之间可以进行合理的比较(请参见第1.3节)。

与标准深度优先决策树类似,最佳优先决策树以分而治之的方式构建。如何构建最佳优先树的基本思想如下。首先,选择一个属性放置在根节点上,并根据一些条件为此属性创建一些分支。然后,将训练实例划分为子集,每个分支从根节点延伸一个。在本文中,仅考虑了二进制决策树,因此分支的数量恰好是2。然后,仅使用实际到达分支的实例,对选定的分支重复此步骤。在每个步骤中,我们都选择可用于扩展的所有子集中的“最佳”子集。这种构造过程一直持续到所有节点都是纯节点或达到特定数量的扩展为止。图1。图1示出了假设的二进制最佳优先树和假定的二进制深度优先树之间的划分顺序的差异。注意,可以为最佳优先树选择其他顺序,而在深度优先情况下顺序总是相同的。


您能否也回答第一个问题?
Jekaterina Kokatjuhha

更新了我的答案。简短的版本是C4.5和CART都是深度优先而不是最佳优先的示例。
大卫·马克思

我的第一个问题不是关于最佳优先或DFS的定义或解释。我确实说过自己,C4.5和CART是DFS。第一个问题是“哪个“最多”算法是逐级实现的?还有哪些其他算法或程序包将BFS用于决策树?” [...]
Jekaterina Kokatjuhha

1
“深度优先”的树木生长水平的。那就是我想告诉你的。阅读我为您重点介绍的摘录。在这里,不要将图遍历DFS和BFS与“深度优先”和“最佳优先”的树生长混淆。它们并不相同,深度优先增长是指您所说的“ BFS”,而不是“ DFS”。
大卫·马克思

那是我一直都想念的关键点。谢谢。
Jekaterina Kokatjuhha
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.