在 sklearn 中决定 DecisionTreeClassifier 的 max_depth
Posted
技术标签:
【中文标题】在 sklearn 中决定 DecisionTreeClassifier 的 max_depth【英文标题】:Decide max_depth of DecisionTreeClassifier in sklearn 【发布时间】:2018-01-21 20:22:39 【问题描述】:当我在 skelarn 中使用 GridSearchCV 调整决策树时,我有一个问题。当我决定max_depth
的范围时,我认为所需的max_depth
因情况而异。因为,样本数量或特征影响决定max_depth
。那么,确定max_depth
的范围是否有任何适当的标准,还是仅凭直觉决定?
【问题讨论】:
【参考方案1】:您可以尝试在不同情况下更改 max_depth 并记录性能。
这可能会帮助您获得性能。
http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html
您可以通过测试来决定最大深度。 但是,如果您想使 max_depth 适应于树,您可以尝试用足够的数据训练另一种学习算法来找出它。 (或者简单的线性回归)
【讨论】:
【参考方案2】:通常the recommendation
是从max_depth=3
开始,然后从那里开始工作,Decision Tree (DT)
文档对此进行了更深入的介绍。
具体使用Ensemble Methods
(例如RandomForestClassifier
或DT Regression
)也有助于确定max_depth
是否设置为高和/或过拟合。
【讨论】:
对于RandomForestClassifier,参数'max_depth'的默认值为None,这意味着训练将持续到所有叶子都是纯的或直到所有叶子都包含 @kakoli:尝试使用详细选项。 详细选项只给出正在构建的树的数量。以上是关于在 sklearn 中决定 DecisionTreeClassifier 的 max_depth的主要内容,如果未能解决你的问题,请参考以下文章