Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python scikit学习树外分类器和随机森林分类器图_Python_Graph_Scikit Learn_Random Forest - Fatal编程技术网

Python scikit学习树外分类器和随机森林分类器图

Python scikit学习树外分类器和随机森林分类器图,python,graph,scikit-learn,random-forest,Python,Graph,Scikit Learn,Random Forest,我试图制作一些图表来说明scikit learn中RandomForestClassifier和ExtraTreeClassifier之间的区别。我想我可能已经弄明白了,但我不确定。以下是我的代码,用于拟合和绘制iris数据集,包括: import numpy as np from sklearn.datasets import load_iris from sklearn.externals.six import StringIO from sklearn import tree impor

我试图制作一些图表来说明scikit learn中RandomForestClassifier和ExtraTreeClassifier之间的区别。我想我可能已经弄明白了,但我不确定。以下是我的代码,用于拟合和绘制iris数据集,包括:

import numpy as np
from sklearn.datasets import load_iris
from sklearn.externals.six import StringIO 
from sklearn import tree
import pydot

iris = load_iris()

X = iris.data
y = iris.target

clf = tree.ExtraTreeClassifier()

clf = clf.fit(iris.data, iris.target)


dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
file_name = "et_iris.pdf"
graph.write_pdf(file_name) 

clf = tree.DecisionTreeClassifier()

clf = clf.fit(iris.data, iris.target)


dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
file_name = "rdf_iris.pdf"
graph.write_pdf(file_name) 
这样生成的图似乎是正确的,ET图比决策树图“更浓密”

DecisionTreeClassifier与RandomForestClassifier中的一棵树相同,ExtraTreeClassifier与ExtraTreeClassifier中的一棵树相同,这一点是否正确

对于实际RDF或ET分类器中的所有树,有没有办法做到这一点?我尝试在森林中使用.evaluators,但他们似乎没有导出方法


导出图形viz
不是一种方法,而是一种函数。没有一棵树“拥有”它。您可以将其与
估计器一起使用。
关于
ExtraTreeClassifier
ExtraTreeClassifier
中的一棵树和
DecisionTreeClassifier
RandomForestClassifier
中的一棵树,您是对的。然而,这并没有真正涵盖它,因为:

  • RandomForestClassifier
    分别为每个树引导数据集,
    extratreeClassifier
    不引导(默认情况下)

  • max_features=n_features
    默认情况下,对于单个树,即所有特征都可以在每个分割中使用


因此,如果我自己为DecisionTreeClassifier创建一个引导样本,并输入一个功能子集,它将是等效的。全局地对功能进行二次采样是不等效的。但是你可以在树上设置max_特征:(每次分割都会单独采样)谢谢…我得到了我想要的,这是不同树“外观”的比较。