python-3.x - 在不使用 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
解决方案
如果您不知道必须循环遍历的嵌套字典的数量,则可以使用递归:
def dictionary_print(dict_):
for key, values in dict_.items():
if isinstance(values, dict): dictionary_print(values)
else: print(key, ':', values)
这段代码来自这篇文章。
推荐阅读
- javascript - 如何在“交互式 IDE 代码课程”中查看答案
- php - 如何选择带有额外条件sql的重复行
- javascript - Mocha Chai - Confirm Body 中有一个“名称”属性
- python - 如何解释决策树的 ROC AUC 曲线的阈值?
- flutter - 更改下划线标签指示器的边框半径
- python - 使用 Dask 根据列值将 csv 文件保存为多个 csv 文件
- python - 当 Python 脚本作为 sytemd 服务运行时,向子进程发送 SIGINT 不起作用
- twilio - 您如何使用 Twilio API 获取 whatsapp 的 GPS 共享位置?
- macos - 无法在浏览器中运行 cgi 文件
- python - 选择 2D PyTorch 张量的特定行