当我尝试使用以下命令导出随机森林图时:

tree.export_graphviz(rnd_clf, out_file = None, feature_names = X_test[::1])


我收到以下错误:

NotFittedError: This RandomForestClassifier instance is not fitted yet.
Call 'fit' with appropriate arguments before using this method.


我不明白的是,即使我已经使用以下方法安装了随机森林分类器,为什么它总是告诉我这一点:

rnd_clf = RandomForestClassifier(
             n_estimators=120,
             criterion='gini',
             max_features= None,
             max_depth = 14 )

rnd_clf.fit(X_train, y_train)


而且效果很好。

最佳答案

(仅由文档提供;没有个人经验)

您正在尝试使用签名如下的函数绘制一些DecisionTree:

sklearn.tree.export_graphviz(decision_tree, ...)


但是您要经过一个由树木组成的集合的RandomForest。

那是行不通的!

更深入地讲,内部的代码是here

check_is_fitted(decision_tree, 'tree_')


因此,这是在查询DecisionTree的属性tree_,该属性存在于DecisionTreeClassifier中。

RandomForestClassifier不存在此属性!因此错误。

您唯一可以做的是:打印RandomForest集成中的每个DecisionTree。为此,您需要遍历random_forest.estimators_以获得基础决策树!

08-25 02:35