我使用scikit-learn创建一个随机森林。但是,我想找到每棵树的各个深度。这似乎是一个简单的属性,但根据文档,(http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)没有办法访问它。
如果这不可能,有没有办法从决策树模型访问树深度?
任何帮助将不胜感激。谢谢。
答案 0 :(得分:25)
RandomForestClassifier
的每个实例都有estimators_
属性,该属性是DecisionTreeClassifier
个实例的列表。该文档显示DecisionTreeClassifier
的实例具有tree_
属性,该属性是(未记录的,我相信)Tree
类的实例。解释器中的一些探索表明,每个Tree
实例都有一个max_depth
参数出现是您正在寻找的 - 再次,它没有文档。
在任何情况下,如果forest
是RandomForestClassifier
的实例,那么:
>>> [estimator.tree_.max_depth for estimator in forest.estimators_]
[9, 10, 9, 11, 9, 9, 11, 7, 13, 10]
应该这样做。