决策树在预测时总是返回根节点的信息,怎么返回相应叶子节点的信息。
def classifer(Tree, testVec):
"""
输入:决策树,分类标签,测试数据
输出:决策结果
"""
if Tree.results == None:
if testVec[Tree.col] >= Tree.value:
Tree=Tree.trueBranch
classifer(Tree, testVec)
else:
Tree=Tree.falseBranch
classifer(Tree, testVec)
else:
return Tree.results
a=[168,179,109,221]
print(classifer(decisionTree, a))
以下打印是正确的,但是在返回时还是返回根节点的信息。decisionTree是递归产生的实例
def classifer(Tree, testVec):
"""
输入:决策树,分类标签,测试数据
输出:决策结果
"""
if Tree.results == None:
if testVec[Tree.col] >= Tree.value:
Tree=Tree.trueBranch
classifer(Tree, testVec)
else:
Tree=Tree.falseBranch
classifer(Tree, testVec)
else:
return print(Tree.results)
第一次提问可能说得有点不清楚,着急解决,希望大家帮我看看,谢谢啦!