Graphviz 绘制所有测试样本的决策路径

Graphviz 绘制所有测试样本的决策路径,graphviz,decision-tree,Graphviz,Decision Tree,此代码来自: 基本上,它在决策树图上绘制样本的决策路径,以了解特定预测是如何做出的 import pydotplus from sklearn.datasets import load_iris from sklearn import tree clf = tree.DecisionTreeClassifier(random_state=42) iris = load_iris() clf = clf.fit(iris.data, iris.target) dot_data = tree

此代码来自:

基本上,它在决策树图上绘制样本的决策路径,以了解特定预测是如何做出的

import pydotplus
from sklearn.datasets import load_iris
from sklearn import tree

clf = tree.DecisionTreeClassifier(random_state=42)
iris = load_iris()

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

dot_data = tree.export_graphviz(clf, out_file=None,
                                feature_names=iris.feature_names,
                                class_names=iris.target_names,
                                filled=True, rounded=True,
                                special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)

# empty all nodes, i.e.set color to white and number of samples to zero
for node in graph.get_node_list():
    if node.get_attributes().get('label') is None:
        continue
    if 'samples = ' in node.get_attributes()['label']:
        labels = node.get_attributes()['label'].split('<br/>')
        for i, label in enumerate(labels):
            if label.startswith('samples = '):
                labels[i] = 'samples = 0'
        node.set('label', '<br/>'.join(labels))
        node.set_fillcolor('white')

samples = iris.data[129:130]
decision_paths = clf.decision_path(samples)

for decision_path in decision_paths:
    for n, node_value in enumerate(decision_path.toarray()[0]):
        if node_value == 0:
            continue
        node = graph.get_node(str(n))[0]            
        node.set_fillcolor('green')
        labels = node.get_attributes()['label'].split('<br/>')
        for i, label in enumerate(labels):
            if label.startswith('samples = '):
                labels[i] = 'samples = {}'.format(int(label.split('=')[1]) + 1)

        node.set('label', '<br/>'.join(labels))

filename = 'tree.png'
graph.write_png(filename)
导入pydotplus
从sklearn.dataset导入加载
从sklearn导入树
clf=tree.DecisionTreeClassifier(随机状态=42)
iris=加载_iris()
clf=clf.fit(iris.data,iris.target)
dot_data=tree.export_graphviz(clf,out_file=None,
功能名称=iris.feature名称,
class_name=iris.target_name,
填充=真,四舍五入=真,
特殊字符(为真)
graph=pydotplus.graph_from_dot_数据(dot_数据)
#清空所有节点,即将颜色设置为白色,将采样数设置为零
对于图中的节点。获取节点列表()
如果node.get_attributes().get('label')为无:
持续
如果node.get_attributes()['label']中的“samples=”:
labels=node.get_attributes()['label'].split(“
”) 对于i,枚举中的标签(标签): 如果label.startswith('samples='): 标签[i]=“样本=0” node.set('label','
'.join(labels)) node.set_fillcolor('white')) 样本=虹膜数据[129:130] 决策路径=clf.决策路径(示例) 对于决策路径中的决策路径: 对于n,枚举中的节点值(decision_path.toarray()[0]): 如果节点_值==0: 持续 node=graph.get_节点(str(n))[0] node.set_fillcolor('green')) labels=node.get_attributes()['label'].split(“
”) 对于i,枚举中的标签(标签): 如果label.startswith('samples='): 标签[i]='samples={}'。格式(int(label.split('=')[1])+1) node.set('label','
'.join(labels)) 文件名='tree.png' graph.write_png(文件名)
我想做的是在我的Jupiter笔记本中的不同绘图中绘制所有样本决策路径。我应该在代码中添加什么