使用 sklearn,我如何找到决策树的深度?
Posted
技术标签:
【中文标题】使用 sklearn,我如何找到决策树的深度?【英文标题】:Using sklearn, how do I find depth of a decision tree? 【发布时间】:2019-06-27 04:31:29 【问题描述】:我正在使用 sklearn 训练决策树。当我使用时:
dt_clf = tree.DecisionTreeClassifier()
max_depth
参数默认为None
。根据文档,如果max_depth
是None
,则节点会被扩展,直到所有叶子都是纯的或直到所有叶子包含的样本少于min_samples_split
。
拟合我的模型后,我如何找出 max_depth
的实际含义? get_params()
函数没有帮助。拟合后,get_params()
仍然显示None
。
如何获得max_depth
的实际号码?
文档:https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
【问题讨论】:
【参考方案1】:访问底层Tree
对象的max_depth
:
from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
print(clf.tree_.max_depth)
>>> 1
您可以使用以下方法从底层树对象中获得更多可访问的属性:
help(clf.tree_)
这些包括max_depth
、node_count
和其他较低级别的参数。
【讨论】:
很好的答案!喜欢它。【参考方案2】:根据文档https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier.get_depth 的答案是使用tree.get_depth()
函数。
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review以上是关于使用 sklearn,我如何找到决策树的深度?的主要内容,如果未能解决你的问题,请参考以下文章