决策树的深度取决于什么?

时间:2018-10-04 23:08:23

标签: machine-learning scikit-learn decision-tree supervised-learning

以下是DecisionTreeClassifier的参数:max_depth

http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

max_depth : int or None, optional (default=None)

    The maximum depth of the tree. If None, then nodes are expanded until all leaves are pure or until all leaves contain less than min_samples_split samples.

我一直认为决策树的深度应等于或小于给定数据集的特征(属性)数量。如果在该参数的上述输入之前找到纯类,该怎么办?它会停止拆分还是进一步拆分,直到提到输入?

是否可能在拆分时在两个不同级别的决策树中使用相同的属性?

1 个答案:

答案 0 :(得分:1)

如果决策树的功能数量非常多,那么它可能会变得非常大。要回答您的问题,是的,如果找到纯类变量,它将停止。 这是DecisionTree倾向于过度拟合的另一个原因。

使用“随机森林”时,您想使用max_depth参数,该参数不会为任何特定树选择所有特征,因此,预计所有树都不会增长到最大可能的深度,这将需要修剪。决策树是弱者,在RandomForest中与max_depth一起参与投票。可以在Internet上轻松搜索有关这些RF和DT关系的更多详细信息。有很多文章发表。

因此,通常,当您具有大量功能时,您希望使用max_depth。另外,在实际的实现中,您想单独使用RandomForest而不是DecisionTree。