决策树可视化python代码

#这段代码直接将决策树突出的模型转成json类型

from __future__ import print_function

import json

if __name__ == "__main__":

    treetest = open("data/testif.txt").read()
    def parse(lines):
        block = []
        while lines:
            if lines[0].startswith('If'):
                bl = ' '.join(lines.pop(0).split()[1:]).replace('(', '').replace(')', '')
                print("bl"+bl)
                block.append({
 
 'name': bl, 'children': parse(lines)})
                if lines[0].startswith('Else'):
                    be = ' '.join(lines.pop(0).split()[1:]).replace('(', '').replace(')', '')
                    block.append({
 
 'name': be, 'children': parse(lines)})
            elif not lines[0].startswith(('If', 'Else')):
                block2 = lines.pop(0)
                block.append({
 
 'name': block2})
            else:
                break
        return block

def tree_json(tree):
    data = []
    for line in tree.splitlines():
        if line.strip():
            line = line.strip()
            print(line+"*************")
            data.append(line)
            data2=data[1:]
            print(data2)
        else:
            break
        if not line: break
    res = []
    res.append({
 
 'name': 'Root', 'children': parse(data[0:])})
    with open('data/structure.json', 'w') as outfile:
        json.dump(res[0], outfile)
    print('Conversion Success !')
tree_json(treetest)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值