决策树的深度取决于啥?

Posted

技术标签:

【中文标题】决策树的深度取决于啥?【英文标题】:What does depth of decision tree depend on?决策树的深度取决于什么? 【发布时间】:2019-03-10 09:52:03 【问题描述】:

下面是 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.

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

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

【问题讨论】:

树深度仅用作给定数字(小于log(n))的停止标准。如果你到达一片叶子(只有 1 次观察),你将从此时开始停止构建。 【参考方案1】:

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

您希望在使用 Random Forest 时使用 max_depth 参数,它不会选择任何特定树的所有特征,因此不会期望所有树都长到可能的最大深度,这反过来又需要修剪。决策树是弱学习器,在 RandomForest 中,它们与 max_depth 一起参与投票。有关这些 RF 和 DT 关系的更多详细信息可以在 Internet 上轻松搜索。发表了一系列文章。

因此,通常当您拥有大量特征时,您希望使用 max_depth。此外,在实际实现中,您希望使用 RandomForest 而不是单独使用 DecisionTree。

【讨论】:

以上是关于决策树的深度取决于啥?的主要内容,如果未能解决你的问题,请参考以下文章

决策树 Sklearn - 树的深度和准确性

使用 sklearn,我如何找到决策树的深度?

`graphviz` 在决策树的每个节点内呈现的值是啥意思?

深度学习之决策树与迭代决策树(GBDT)

决策树算法 CART和C4.5决策树有啥区别?各用于啥领域?

机器学习--决策树