我想显示基于决策树模型输出的Graphviz决策树图像,因为它更具有表现力,但是,来自初始模型输出的临界值'gini‘或’熵‘并没有显示在图形树输出上。
我遵循了本教程:https://www.datacamp.com/community/tutorials/decision-tree-classification-python
用于决策树输入的代码:
clf = tree.DecisionTreeClassifier(max_leaf_nodes = 3, min_samples_leaf = 5, max_depth =4)
clf = clf.fit(X_train, y_train)
tree.plot_tree(clf.fit(X_train, y_train))决策树模型的输出:https://i.stack.imgur.com/NprzI.png
用于图形输入的代码:
dot_data = StringIO()
tree.export_graphviz(clf, out_file = dot_data, feature_names = inputs.columns,class_names =['0','1'], filled = True, rounded = True, impurity = False)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(graph.create_png())图形决策树的输出:https://i.stack.imgur.com/5Q9D6.png
我已经在clf树的参数中添加了性价比= " gini“(尽管在默认情况下它不是必需的,因为它被设置为gini),但是没有对graphviz输出进行更改。
我还在clf树的参数中添加了准则=“熵”,它将输出从gini转换为熵,并显示在树模型输出上,而不是显示在图形输出上。
我还没有在文档或其他地方看到任何东西来说明为什么会出现这种情况,这对于显示使用中的标准是有用的。
我是不是遗漏了一个参数?
发布于 2019-12-13 02:10:31
来自sklearn.tree.export_graphviz的文档
参数:
杂质: bool,可选(default=True)
并显式地将其设置为False:
tree.export_graphviz(... impurity = False)如果将其设置为False,它将不会出现在情节中。
https://stackoverflow.com/questions/59315036
复制相似问题