我使用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”代表什么?在
感谢你的帮助和建议。谢谢您!在
据我所知,在scikit learn中没有限制拆分(节点)总数的选项。但是,您可以将
max_leaf_nodes
设置为MaxNumSplits + 1
,结果应该是等效的。在假设我们的树有}都增加了1。我们通常只从根节点(
n_split
分裂节点和n_leaf
叶节点。如果拆分一个叶节点,则将其转换为拆分节点并添加两个新的叶节点。所以n_splits
和{n_splits=0
,n_leafs=1
)开始,每次拆分都会增加两个数字。因此,叶节点的数目总是n_leafs == n_splits + 1
。在至于
max_depth
;深度是树有多少层。换句话说,深度是根节点和最远叶节点之间的最大节点数。max_depth
参数限制此深度。如果节点位于树的下方太远,它可以防止进一步拆分节点。(您可以将max_depth
看作是在做出决定之前对分割数的限制。)相关问题 更多 >
编程相关推荐