决策树几乎总是二叉树吗?


21

我遇到的几乎每个决策树示例都恰好是一棵二叉树。这是普遍的吗?大多数标准算法(C4.5,CART等)仅支持二进制树吗?据我所知,CHAID不限于二叉树,但这似乎是一个例外。

在其中一个孩子上进行双向拆分然后再进行双向拆分与一次三元拆分是不同的事情。这可能是一个学术观点,但是我试图确保我了解最常见的用例。

Answers:


18

这主要是一个技术问题:如果您不限于二进制选择,那么树中下一个拆分的可能性就太多了。因此,您在问题中提出的所有观点绝对正确。

请注意,大多数树型算法都是逐步执行的,因此甚至不能保证给出最佳结果。这只是一个额外的警告。

对于大多数实际目的,尽管不是树的构建/修剪期间,但这两种拆分是等效的,因为它们彼此紧接出现。


只是为了放大您的第一点:可能的拆分数量呈指数增长。如果要对具有1000个不同值的连续变量进行拆分,则有999个二进制拆分,但有999 * 998个三进制拆分。
彼得·弗洛姆

2
@Peter有三元分裂,实际上。(1000131)=999998/2
ub

5

在一个孩子上进行双向拆分然后再进行双向拆分与一次三元拆分不一样

我不确定您在这里的意思。任何多路拆分都可以表示为一系列的双向拆分。对于三向拆分,您可以拆分成A,B和C,方法是先拆分成A&B与C,然后再从B中拆分出A。

给定的算法可能不会选择该特定序列(特别是如果像大多数算法一样,是贪婪的),但是肯定可以。而且,如果像在随机森林或茂密的树木中一样进行了任何随机化或分阶段的程序,找到正确分割序列的机会就会增加。正如其他人指出的那样,多路拆分在计算上是昂贵的,因此鉴于这些选择,大多数研究人员似乎都选择了二进制拆分。

希望这可以帮助


3
是的,我知道可以通过首先将A,B和C拆分为A&B和C,然后将A与B拆分来实现A,B和C。我的意思确实是,给定算法可能不会选择该特定序列。
Michael McGowan

2

关于决策树和拆分(二进制与其他方法)的使用,我只知道具有非二进制拆分的CHAID,但可能还有其他拆分。对我而言,非二进制拆分的主要用途是在数据挖掘练习中,在这里我研究如何最佳地将名义变量与多个级别进行装箱。一系列二进制拆分的功能不如CHAID进行的分组有用。


您提到装箱很有趣,因为对装箱的思考使我开始对这个问题感到疑惑(尽管我当时在考虑对数字变量而不是标称变量进行装箱)。
Michael McGowan

@Michael,是的,也可以,但是您会丢弃信息。当我需要组合名义变量的稀疏级别时(在不使用树型方法进行最终建模时(例如逻辑回归或SVM以及许多稀疏的虚拟变量会导致问题)),我会使用它
B_Miner 2011年

0

请阅读

出于实际原因(组合爆炸),大多数库使用二进制拆分来实现决策树。令人高兴的是它们是NP完全的(Hyafil,Laurent和Ronald L. Rivest。“构造最佳二元决策树是NP完全的。” Information Processing Letters 5.1(1976):15-17。)

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.