【发布时间】:2017-03-18 23:07:05
【问题描述】:
我正在用 python 编写决策树。 tree 是一个具有真分支tb 和假分支fb 的对象。只有根节点具有属性results。
results 是一个字典,包含节点上每个目标变量(即因变量)的计数。我正在研究一个二元分类问题,所以一个例子是字典{0: 25, 1: 9}。
我想创建一个函数findrootnodes(tree),它遍历树,一直到根节点。它应该返回列表根节点。列表的每个元素都应该包含一个字典。所以一个有四个根节点的决策树的例子是[{0: 25, 1: 9}, {0: 2, 1: 65}, {0: 2, 1: 7}, {0: 52, 1: 4}]。
我该怎么做?我当前的代码如下,但问题是它总是返回一个空列表。如果我将 rootnodes 带出函数,Python 会抱怨在实例化之前引用了局部变量 rootnodes。
def findrootnodes(tree):
rootnodes = []
if tree.results != None:
rootnodes += tree.results
else:
findrootnodes(tree.tb)
findrootnodes(tree.fb)
return rootnodes
【问题讨论】:
标签: python recursion decision-tree