无graphviz的决策树可视化及查看树结构方法

决策树可视化

cn=['0','1']
# Setting dpi = 300 to make image clearer than default
fig, axes = plt.subplots(nrows = 1,ncols = 1,figsize = (25,30), dpi=300)

tree.plot_tree(tree,
           filled = True);

fig.savefig('tree.png')

决策树结构查看

def get_code(tree, feature_names):

    left      = tree.tree_.children_left

    right     = tree.tree_.children_right

    threshold = tree.tree_.threshold

    features  = [feature_names[i] for i in tree.tree_.feature]

    value = tree.tree_.value

    dent_s = '    '

    def recurse(left, right, threshold, features, node, dent):

        

        if (threshold[node] != -2):

            print(dent+"current value: " + str(value[node]))

            print(dent+"if ( " + features[node] + " <= " + str(threshold[node]) + " ) {")

            if left[node] != -1:

                dent_new = dent_s+dent

                recurse (left, right, threshold, features,left[node],dent_new)

            print(dent+"} else {")

            if right[node] != -1:

                dent_new = dent_s+dent

                recurse (left, right, threshold, features,right[node],dent_new)

            print(dent+"}")

        else:

            print(dent+"current value: " + str(value[node]))

    recurse(left, right, threshold, features, 0, '')
get_code(best_tree, ['x1','x2','x3'])

版权声明:本文为weixin_41744624原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。