python 2.7 - scikit-learn RandomForestClassifier语言 - 如何解释树输出



我有下面的代码,但我只是不明白如何解释从RandomForestClassifier的树输出数据,像基尼系数是如何计算的,给定的样本和"值"列表中的总数如何可以高于3的初始样本。

我将此输出与我可以理解和解释的decisiontreecclassifier进行比较。

任何帮助都是感激的,谢谢!

from sklearn.ensemble import RandomForestClassifier
from sklearn import tree
import numpy as np
from sklearn.externals.six import StringIO  
import pydot 
# Data
X = np.array([[0, 0],
              [0, 1],
              [1, 0],
              [1, 1]])
Y = np.array([0, 1, 1, 0])
# Create object classifiers
clf = RandomForestClassifier()
clf_tree = tree.DecisionTreeClassifier()
# Fit data
clf_tree.fit(X,Y)
clf.fit(X, Y)
# Save data
dot_data = StringIO()
tree.export_graphviz(clf_tree, out_file = dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("orig_tree.pdf")
i_tree = 0
for tree_in_forest in clf.estimators_:    
    dot_data = StringIO()
    tree.export_graphviz(tree_in_forest, out_file = dot_data)
    graph = pydot.graph_from_dot_data(dot_data.getvalue())
    f_name = 'tree_' + str(i_tree) + '.pdf'
    graph.write_pdf(f_name) 
    i_tree += 1

决策树:https://i.stack.imgur.com/XZ7vU.png

来自RandomForestClassifier的树:https://i.stack.imgur.com/Bb5t9.png

给定样本基尼系数是如何计算的?

基尼系数的计算方法与随机森林和决策树完全相同。基尼值或方差对应于节点的杂质。

"值"列表中的总数如何高于初始样本3?

在分类的情况下,value属性对应于到达叶子的样本数。

在随机森林的情况下,样本是自举的,因此样本总数平均为原始样本的2/3,但样本总数没有变化。

相关内容

  • 没有找到相关文章

最新更新