machine-learning - 决策树的深度取决于什么?

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

下面是 DecisionTreeClassifier 的参数:max_深度

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.

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

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

最佳答案

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

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

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

关于machine-learning - 决策树的深度取决于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52656297/

相关文章:

machine-learning - 神经网络是否很复杂 "Linear Functions"有很多参数?

r - 有人可以解释 R 中 pvclust 函数的输出吗?

python - Scikit learn中的R2值是怎么计算出来的?

python - 将数字添加到 scikit-learn 的 CountVectorizer 的 stop_words

machine-learning - SVM 模型将概率得分大于 0.1(默认阈值 0.5)的实例预测为正例

scala - Spark : How to create categoricalFeaturesInfo for decision trees from LabeledPoint?

r - r 中的决策树没有用我的训练数据形成

python - 如何在 scikit-learn 随机森林的 graphviz-graph 中找到一个类?

python - 如何获取 scikit-learn 决策树所有节点的 pos/neg 实例计数?

database - 在 Postgres 中存储矢量数据的有效方法是什么?