确定sklearn决策树中的拆分量

2024-09-29 21:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用fitctree函数(link:https://de.mathworks.com/help/stats/classificationtree-class.html)在Matlab中开发了一个决策树(集成)。在

现在我想用python重新构建相同的集成。因此,我使用带有“DecisionTreeClassifier”的sklearn库(链接:http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html)。在

在Matlab中,我通过设置以下内容定义了每棵树的最大拆分量: “MaxNumSplits”-fitctree函数中的最大决策拆分数。 这样就可以定义分支节点的数量。在

现在我了解了“DecisionTreeClassifier”对象的属性,没有任何类似的选项。我说得对吗?我发现用来控制每棵树中节点数量的是“max_leaf_nodes”,它显然控制了叶节点的数量。在

第二:“最大深度”到底控制什么?如果不是“无”,那么整数“max_depth=int”代表什么?在

感谢你的帮助和建议。谢谢您!在


Tags: 函数httpscom数量节点定义htmllink
1条回答
网友
1楼 · 发布于 2024-09-29 21:40:25

据我所知,在scikit learn中没有限制拆分(节点)总数的选项。但是,您可以将max_leaf_nodes设置为MaxNumSplits + 1,结果应该是等效的。在

假设我们的树有n_split分裂节点和n_leaf叶节点。如果拆分一个叶节点,则将其转换为拆分节点并添加两个新的叶节点。所以n_splits和{}都增加了1。我们通常只从根节点(n_splits=0n_leafs=1)开始,每次拆分都会增加两个数字。因此,叶节点的数目总是n_leafs == n_splits + 1。在

至于max_depth;深度是树有多少层。换句话说,深度是根节点和最远叶节点之间的最大节点数。max_depth参数限制此深度。如果节点位于树的下方太远,它可以防止进一步拆分节点。(您可以将max_depth看作是在做出决定之前对分割数的限制。)

相关问题 更多 >

    热门问题