决策树:如果总是二分法

机器算法验证 机器学习
2022-03-22 15:10:40

决策树几乎每一堂课的介绍都是决策树,其中一个节点可能有两个以上的孩子。但是,据我了解,决策树始终是二叉树,对吗?在实现过程中,我对所有分类变量进行一次性编码,这意味着对此类特征的拆分将始终为 0 或 1(两个孩子)。

因此,如果我在一次热编码后有一个具有正常、高值的特征,我将获得两个特征湿度正常和湿度高。拆分将首先在湿度.正常和湿度.高上执行,反之亦然。

python 和 r 中的 RandomForestClassifier/DescitionTree 是通过二叉树(二进制拆分)构造的吗?

在此处输入图像描述

1个回答

CHAID 树可以有多个节点(超过 2 个),因此决策树并不总是二元的。

有许多不同的树构建算法,随机森林算法实际上创建了一个决策树的集合。在原始论文中,作者使用了CART算法的轻微变化。但是,没有必要使用 CART 来构建随机森林模型;其他研究人员通过使用使用不同算法构建的树学习器来生成随机森林模型来扩展这一概念。

用于构建决策树的自变量也不一定必须是二进制值(0-1 值或 one-hot 编码的分类变量)。这样做会严重限制这些算法的可用性。每个节点在拆分后可能包含多个类别。例如,天气类别为有风、有雾、有雨和晴天的变量可能会被拆分为两个节点——节点 1:有风 + 晴天,节点 2:有雾和下雨。

要回答您的特定查询:scikit-learn 和 R 都使用 CART 来构建随机森林模型,因此它们的基础学习器是二叉树。