导出/打印随机森林决策树/'随机森林分类器对象没有属性'树_'

Export / Plot Random Forest Decision Tree / #39;RandomForestClassifier#39; object has no attribute #39;tree_#39;(导出/打印随机森林决策树/#39;随机森林分类器对象没有属性#39;树_#39;)
本文介绍了导出/打印随机森林决策树/'随机森林分类器对象没有属性'树_'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家晚上好

本文的目标是能够从随机决策树过程中绘制决策树。在运行不同的选项后,我总是得到下一个错误:‘RandomForestVinator’对象没有属性‘tree_’

非常感谢任何帮助/代码示例/想法或链接,以便能够解决此问题。

在下一组代码中,我是如何绘制常规/常规决策树的。

clf_SMOTE1 = DecisionTreeClassifier(criterion='entropy',max_depth=4, min_samples_leaf=7)
clf_SMOTE1
    
clf_SMOTE1 = clf_SMOTE1.fit(X_train, Y_train)
    
a = df.columns[6:]
dot_data = tree.export_graphviz(clf_SMOTE1, out_file=None, filled=False, feature_names= a)
graphviz.Source(dot_data)

在接下来的几行中,我尝试了不同的尝试,但都没有结果。

clf_SMOTE2 = RandomForestClassifier(criterion='entropy', bootstrap = True, max_depth=4, min_samples_leaf=7)
clf_SMOTE2
    
clf_SMOTE2 = clf_SMOTE2.fit(X_train, Y_train)

a = df.columns[6:]
dot_data_2 = tree.export_graphviz (clf_SMOTE2, out_file=None, feature_names = a, precision = 2, filled = False)
graphviz.Source(dot_data_2)

选项2:

clf_SMOTE2 = RandomForestClassifier(criterion='entropy', bootstrap = True, max_depth=4, min_samples_leaf=7)
clf_SMOTE2
        
clf_SMOTE2 = clf_SMOTE2.fit(X_train, Y_train)
    
    
a = df.columns[6:]
dot_data_2 = tree.plot_tree(clf_SMOTE2,  model.estimators_[5], feature_names= a)
graphviz.Source(dot_data_2)

推荐答案

来自help page:

随机森林是符合多个决策的元估计器 数据集不同子样本上的树分类器

因此您不能对RandomForestClassifier对象应用export_graphviz。您需要访问存储在estimators_

下的其中一个诊断树
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.tree import export_graphviz
import pandas as pd

X,y = make_classification()
X = pd.DataFrame(X,columns = ['col'+str(i) for i in range(X.shape[1])])

clf = RandomForestClassifier(criterion='entropy', bootstrap = True, 
max_depth=4, min_samples_leaf=7)
clf = clf.fit(X, y)

在这里,我们只访问100个决策树中的第一个:

len(clf.estimators_)
100

dot_data_2 = export_graphviz(clf.estimators_[0], out_file=None, 
feature_names = X.columns, precision = 2, filled = False)

这篇关于导出/打印随机森林决策树/'随机森林分类器对象没有属性'树_'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)