不使用 Sklearn 或 PPrint 包打印决策树的输出

问题描述

我正在尝试以以下格式打印决策树的输出enter image description here

我将决策树存储为嵌套字典。我正在尝试对字典使用嵌套循环,但没有结果。

enter image description here

请让我知道有关如何实现这一目标的任何想法??

输出必须是这样的

|--- XO <= 0.50
|   |--- XM <= 0.50
|   |   |--- XF <= 0.50
|   |   |   |--- class: 0
|   |   |--- XF >  0.50
|   |   |   |--- class: 0
|   |--- XM >  0.50
|   |   |--- XB <= 0.50
|   |   |   |--- XF <= 0.50
|   |   |   |   |--- XG <= 0.50
|   |   |   |   |   |--- class: 0
|   |   |   |   |--- XG >  0.50
|   |   |   |   |   |--- XD <= 0.50
|   |   |   |   |   |   |--- class: 1
|   |   |   |   |   |--- XD >  0.50
|   |   |   |   |   |   |--- class: 0
|   |   |   |--- XF >  0.50
|   |   |   |   |--- class: 1
|   |   |--- XB >  0.50
|   |   |   |--- XI <= 0.50
|   |   |   |   |--- class: 0
|   |   |   |--- XI >  0.5

解决方法

如果您不知道必须循环遍历的嵌套字典的数量,可以使用递归:

def dictionary_print(dict_):
    for key,values in dict_.items():
        if isinstance(values,dict): dictionary_print(values)
    else: print(key,':',values)

此代码来自this post