Python言語を使用して二分決定木をトラバースする方法。ツリーが与えられた場合、ルートから必要なリーフに移動する方法を知りたい必要なリーフの機能が辞書形式で指定されていると仮定し、機能リストに記載されている詳細を使用して各ノードの質問に答えてルートからリーフに移動する必要があります..デシジョンツリーノードの形式は((質問)(左ツリー)(右ツリー))です。トラバースするときは、各ノードで質問に答え、左または右を選択してリーフまでトラバースする必要がありますか?
2691 次
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 に答える