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

Mel*_*Mel 7 python decision-tree scikit-learn

我正在用sklearn训练决策树。当我使用时:

dt_clf = tree.DecisionTreeClassifier()
Run Code Online (Sandbox Code Playgroud)

max_depth参数的缺省值为None。根据文档,如果max_depthis为None,则将节点展开,直到所有叶子都是纯净的,或者直到所有叶子都包含少于min_samples_split样本的叶子为止。

拟合模型后,如何找出max_depth实际值?该get_params()功能无济于事。拟合后,get_params()它仍然说None

我如何获得实际的电话号码max_depth

文件:https : //scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

Pri*_*usa 8

访问max_depth基础Tree对象的:

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
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法从基础树对象获取更多可访问的属性:

help(clf.tree_)
Run Code Online (Sandbox Code Playgroud)

其中包括max_depthnode_count和其他较低级别的参数。


小智 6

根据文档https://scikit-learn.org/stable/modules/ generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier.get_depth的答案是使用该tree.get_depth()函数。