提问者:小点点

为什么决策树的结构是只有二叉树的skLearning决策树分类器?


正如我们可以从这里的sk学文档中看到的,或者从我的实验中看到的,决策树分类器的所有树结构都是二叉树。无论标准是基尼还是熵,每个决策树分类器节点只能有0或1或2个子节点。

但是从决策树介绍幻灯片(第3页)来看,理论决策树的每个节点可以有2个以上的子节点。

所以我的问题是为什么决策树结构只有二叉树(每个决策树分类器节点只能有1或2个子节点。)我们可以得到具有超过2个子节点的树结构的决策树分类器吗?


共1个答案

匿名用户

这是因为sklearn的方法是处理数字特征,而不是分类的,当你有数字特征时,相对来说很难建立一个好的分割规则,它可以有任意数量的阈值(需要产生两个以上的子对象)。另一方面,对于分类功能(在所提供的幻灯片中使用),另一种可能的选择是拥有尽可能多的子级值。这两种方法都有其自身的问题(当你有很多可能的值时,分类方法几乎难以解决),数字特征需要编码(分类的一个热点,这有效地意味着你仍然可以表达同一棵树,而不是有3个孩子的“物种”[狗、猫、人]你将有更深的决策树:[狗,不是狗],[不是狗而是猫,不是狗,不是猫而是人])。

所以简短的回答是不,你不能用这个实现实现超过2个孩子,但是一般来说这不是真正的限制。