Graphviz 决策树输出未显示 Criterion/Gini

Graphviz Decision Tree Output Not Displaying Criterion/Gini

我想显示基于决策树模型输出的 Graphviz 决策树图像,因为它更像样,但是初始模型输出的临界值 'gini' 或 'entropy' 是未显示在 graphviz 树输出中。

我遵循了这个教程: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

用于 graphviz 输入的代码:

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())

graphviz 决策树的输出:https://i.stack.imgur.com/5Q9D6.png

我在 clf 树的参数中添加了 criterion = "gini"(虽然它不是必需的,因为它默认设置为 gini),但没有对 graphviz 输出进行更改。

我还在 clf 树的参数中添加了 criterion = "entropy" ,它将输出从 gini 更改为熵,并显示在树模型输出上而不是 graphviz 输出上。

我在文档或其他地方没有看到任何内容来说明为什么会出现这种情况,并且有助于说明正在使用的标准。

我是不是漏掉了某个参数?

来自 sklearn.tree.export_graphviz 的文档:

Parameters:

impurity: bool, optional (default=True)

然后您将其明确设置为 False

tree.export_graphviz(...      impurity = False)

如果你将它设置为False,它将不会出现在剧情中。