首页 > 解决方案 > 在不使用 Sklearn 或 PPrint 包的情况下打印决策树的输出

问题描述

我正在尝试以以下格式打印决策树的输出: 在此处输入图像描述

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

在此处输入图像描述

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

输出必须看起来像这样

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

标签: python-3.xdictionarynesteddecision-treebinary-decision-diagram

解决方案


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

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

这段代码来自这篇文章


推荐阅读