'RandomForestClassifier'对象没有属性'tree_'

时间:2018-02-19 16:33:40

标签: python scikit-learn

from sklearn.ensemble import RandomForestClassifier
from sklearn import tree

rf = RandomForestClassifier()

rf.fit(X_train, y_train)
n_nodes = rf.tree_.node_count

每次运行此代码时,都会出现以下错误

  

'RandomForestClassifier'对象没有属性'tree _'

任何想法

3 个答案:

答案 0 :(得分:0)

根据scikit-learn documentation,它没有.tree_属性。

它只有estimators_classes_n_classes_n_features_n_outputs_feature_importances_oob_score_oob_decision_function_属性。

答案 1 :(得分:0)

您想从林中取出一个DecisionTreeClassifier。在documentation中,base_estimator_DecisionTreeClassifier,而estimators_DecisionTreeClassifier的列表。对您的代码所做的更改是:

from sklearn.ensemble import RandomForestClassifier
from sklearn import tree

rf = RandomForestClassifier()

rf.fit(X_train, y_train)

n_nodes = rf.base_estimator_.tree_.node_count
  or
n_nodes = rf.estimators_[0].tree_.node_count

答案 2 :(得分:-1)

'tree _'不是RandomForestClassifier属性。它是DecisionTreeClassifiers的属性。

使用RandomForestClassifier时不应该使用它,不需要它。