如何在Python的scikit-learn中访问树深度?

时间:2015-12-11 00:11:41

标签: python scikit-learn random-forest decision-tree depth

我使用scikit-learn创建一个随机森林。但是,我想找到每棵树的各个深度。这似乎是一个简单的属性,但根据文档,(http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)没有办法访问它。

如果这不可能,有没有办法从决策树模型访问树深度?

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:25)

RandomForestClassifier的每个实例都有estimators_属性,该属性是DecisionTreeClassifier个实例的列表。该文档显示DecisionTreeClassifier的实例具有tree_属性,该属性是(未记录的,我相信)Tree类的实例。解释器中的一些探索表明,每个Tree实例都有一个max_depth参数出现是您正在寻找的 - 再次,它没有文档。

在任何情况下,如果forestRandomForestClassifier的实例,那么:

>>> [estimator.tree_.max_depth for estimator in forest.estimators_]
[9, 10, 9, 11, 9, 9, 11, 7, 13, 10]

应该这样做。