0

如何使用python语言遍历二叉决策树。给定一棵树,我想知道我们如何从根遍历到所需叶子所需叶子的特征以字典形式给出假设并且必须从根遍历到叶子用特征列表中给出的详细信息回答每个节点的问题.. 决策树节点具有格式 ((question)(left tree)(right tree)) 遍历它时应该回答每个节点的问题并选择左或右并遍历直到叶子?

4

2 回答 2

2
def walk(node):
    answer = ask(node.question)
    if answer == left:
        walk(node.left_tree)
    else:
        walk(node.right_tree)

def ask(question):
       # get answer somehow
       # depending on the answer choose which subtree to traverse
       return answer
于 2010-05-26T09:48:04.637 回答
0

@TheMachineCharmer 是对的:递归是这里的关键字

我会在@TheMachineCharmer 给出的不错的函数中添加一点回报(微不足道的情况,答案既不是左也不是右)

def walk(node):
    answer = ask(node.question)
    if answer == left:
        walk(node.left_tree)
    else:
        walk(node.right_tree)
    return answer

这样,如果节点包含真正的答案,它将返回它。

于 2010-05-26T11:36:53.733 回答