資源簡介
本壓縮包包含:
1.本決策樹(DecisionTree)項目python源代碼文件;
2.項目用的數據(csv格式);
3.一個普通文件,記錄本項目的調試過程,用作實戰參考

代碼片段和文件信息
import?matplotlib.pyplot?as?plt??
?
from?pylab?import?*??
mpl.rcParams[‘font.sans-serif‘]?=?[‘SimHei‘]??
#?定義文本框和箭頭格式??
decisionNode?=?dict(boxstyle?=?“sawtooth“?fc?=?“0.8“)??
leafNode?=?dict(boxstyle?=?“round4“?fc?=?“0.8“)??
arrow_args?=?dict(arrowstyle?=?“<-“)??
??
#?繪制帶箭頭的注解??
def?plotNode(nodeTxt?centerPt?parentPt?nodeType)?:??
????createPlot.ax1.annotate(
???? nodeTxt?
???? xy?=?parentPt???#起點位置
???? xycoords?=?‘axes?fraction‘?
???? xytext?=?centerPt?#注解框位置?
???? textcoords?=?‘axes?fraction‘?
???? va?=?‘center‘?ha?=?‘center‘?bbox?=?nodeType?arrowprops?=?arrow_args)??
??
def?createPlot()?:??
????fig?=?plt.figure(1?facecolor=‘white‘)??
????fig.clf()??
????createPlot.ax1?=?plt.subplot(111?frameon?=?False)??
????plotNode(U‘決策節點‘?(0.5?0.1)?(0.1?0.5)?decisionNode)??
????plotNode(U‘葉節點‘?(0.8?0.1)?(0.3?0.8)?leafNode)??
????plt.show()??
createPlot()??
#獲取葉節點的數目和樹的層數
def?getNumLeafs(myTree):
????numLeafs?=?0
????firstStr?=?list(myTree.keys())[0]
????secondDict?=?myTree[firstStr]
????for?key?in?secondDict.keys():
????????if?type(secondDict[key]).__name__==‘dict‘:
????????????numLeafs?+=?getNumLeafs(secondDict[key])
????????else:????numLeafs?+=?1
????return?numLeafs
def?getTreeDepth(myTree):
????maxDepth?=?0
????firstStr?=??list(myTree.keys())[0]
????secondDict?=?myTree[firstStr]
????for?key?in?secondDict.keys():
????????if?type(secondDict[key]).__name__==‘dict‘:
????????????thisDepth?=?1?+?getTreeDepth(secondDict[key])
????????else:????thisDepth?=?1
????????if?thisDepth?>?maxDepth:?maxDepth?=?thisDepth
????return?maxDepth
#test?code
#mt={‘no?surfacing‘:?{0:?‘no‘?1:?{‘flippers‘:?{0:?‘no‘?1:?‘yes‘}}}}
#print(getNumLeafs(mt))
#print(getTreeDepth(mt))
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-02-27?00:14??DecisionTree\
?????文件?????????807??2018-02-27?00:13??DecisionTree\tree.csv
?????文件????????1852??2018-02-14?02:19??DecisionTree\treePlotter.py
?????文件????????3115??2018-03-03?21:58??DecisionTree\trees.py
?????文件????????8379??2018-02-21?23:57??DecisionTree\treestest
評論
共有 條評論