From ad74c9c4a77a046d3e63e20094a96fcfadb4090c Mon Sep 17 00:00:00 2001 From: chenyyx Date: Wed, 23 Aug 2017 14:03:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20DecisionTree.py=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=A2=84=E6=B5=8B?= =?UTF-8?q?=E9=9A=90=E5=BD=A2=E7=9C=BC=E9=95=9C=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/python/3.DecisionTree/DecisionTree.py | 36 +++++++++++++++++++---- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/python/3.DecisionTree/DecisionTree.py b/src/python/3.DecisionTree/DecisionTree.py index 89675d73..f34a568c 100755 --- a/src/python/3.DecisionTree/DecisionTree.py +++ b/src/python/3.DecisionTree/DecisionTree.py @@ -250,14 +250,12 @@ def grabTree(filename): fr = open(filename) return pickle.load(fr) - -if __name__ == "__main__": - +def fishTest(): # 1.创建数据和结果标签 myDat, labels = createDataSet() # print myDat, labels - # # 计算label分类标签的香农熵 + # 计算label分类标签的香农熵 # calcShannonEnt(myDat) # # 求第0列 为 1/0的列的数据集【排除第0列】 @@ -274,4 +272,32 @@ if __name__ == "__main__": # print classify(myTree, labels, [1, 1]) # 画图可视化展现 - dtPlot.createPlot(myTree) + # dtPlot.createPlot(myTree) + +def ContactLensesTest(): + """ + Desc: + 预测隐形眼镜的测试代码 + Args: + none + Returns: + none + """ + + # 加载隐形眼镜相关的 文本文件 数据 + fr = open('input/3.DecisionTree/lenses.txt') + # 解析数据,获得 features 数据 + lenses = [inst.strip().split('\t') for inst in fr.readlines()] + # 得到数据的对应的 Labels + lensesLabels = ['age', 'prescript', 'astigmatic', 'tearRate'] + # 使用上面的创建决策树的代码,构造预测隐形眼镜的决策树 + lensesTree = createTree(lenses, lensesLabels) + print lensesTree + # 画图可视化展现 + # dtPlot.createPlot(lensesTree) + + +if __name__ == "__main__": + fishTest() + # ContactLensesTest() +