本文摘自“机器学习实战”,感兴趣者可自行查看!
获取决策树的叶节点
现有决策树如下:
mytree={'no surfing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}
#获取决策树的叶节点数目
def getNumLeaf(myTree):
numLeaf=0
firstStr=list(myTree.keys())[0]
secondTree=myTree[firstStr]
for key in secondTree:
if type(secondTree[key])==dict:
numLeaf+=getNumLeaf(secondTree[key])
else: numLeaf+=1
return numLeaf
获取决策树的深度
#获取决策树的层数
def getTreeDepth(myTree):
maxDepth=0
firstStr=list(myTree.keys())[0]
secondTree=myTree[firstStr]
for key in secondTree:
if type(secondTree[key])==dict:
thisDepth=1+getTreeDepth(secondTree[key])
else: thisDepth=1
if thisDepth>maxDepth:
maxDepth=thisDepth
return maxDepth