def main(): dataSet=[[1,2,'yes'], [1,2,'yes'], [1,0,'no'], [1,1,'no'], [0,2,'no'], ] dataSet = [[u'青年', u'否', u'否', u'一般', u'拒绝'], [u'青年', u'否', u'否', u'好', u'拒绝'], [u'青年', u'是', u'否', u'好', u'同意'], [u'青年', u'是', u'是', u'一般', u'同意'], [u'青年', u'否', u'否', u'一般', u'拒绝'], [u'中年', u'否', u'否', u'一般', u'拒绝'], [u'中年', u'否', u'否', u'好', u'拒绝'], [u'中年', u'是', u'是', u'好', u'同意'], [u'中年', u'否', u'是', u'非常好', u'同意'], [u'中年', u'否', u'是', u'非常好', u'同意'], [u'老年', u'否', u'是', u'非常好', u'同意'], [u'老年', u'否', u'是', u'好', u'同意'], [u'老年', u'是', u'否', u'好', u'同意'], [u'老年', u'是', u'否', u'非常好', u'同意'], [u'老年', u'否', u'否', u'一般', u'拒绝'], ] tree=fit(dataSet) print(tree) treePlotter2.createPlot(tree)
def main(): dataSet = [ [1, 2, 'yes'], [1, 2, 'yes'], [1, 0, 'no'], [1, 1, 'no'], [0, 2, 'no'], ] tree = fit(dataSet) print(tree) treePlotter2.createPlot(tree)
def main(): dataSet, label = createDataSet() Ent = calcShannonEnt(dataSet) print(Ent) feature = chooseBestFeatureToSplit(dataSet) print(feature) myTree1 = creatTree(dataSet, label) print(myTree1) # 测试决策树的构建 treePlotter2.createPlot(myTree1)
def main(): dataSet, label = createDataSet() feature = chooseBestFeatureToSplit(dataSet) myTree1 = creatTree(dataSet, label) print(myTree1) mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题 # 测试决策树的构建 treePlotter2.createPlot(myTree1)
def main(): # dataSet,label=createDataSet() dataSet_ = createD() dataSet = featureSplit(dataSet_, step_num=3) label = [i for i in range(len(dataSet[0]))] # print(label) Ent = calcShannonEnt(dataSet) # print(Ent) feature = chooseBestFeatureToSplit(dataSet) # print(feature) myTree1 = creatTree(dataSet, label) # print(myTree1) mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题 # 测试决策树的构建 treePlotter2.createPlot(myTree1)
# -*- coding: utf-8 -*- # Filename : 07store_grab.py from numpy import * from math import log from ID3DTree import * import copy import treePlotter2 import matplotlib.pyplot as plt dtree = ID3DTree() dtree.loadDataSet("dataset.dat",["age","revenue","student","credit"]) # dtree.loadDataSet("lenses.txt",['age','prescript','astigmatic','tearRate']) dtree.train() print dtree.tree treePlotter2.createPlot(dtree.tree)
dataSet = load_csv(filename) for i in range(0, len(dataSet[0]) - 1): str_column_to_float(dataSet, i) str_column_to_int(dataSet, len(dataSet[0]) - 1) max_depth = 10 min_size = 3 print(len(dataSet)) tree = build_tree(dataSet[0:200], max_depth, min_size) print(tree) ####可视化 import treePlotter2 from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题 # 测试决策树的构建 treePlotter2.createPlot(tree) ###可视化 predictions = [predict(tree, row) for row in dataSet[150:]] realLabels = [row[-1] for row in dataSet[150:]] current = 0 for i in range(len(predictions)): if predictions[i] == realLabels[i]: current += 1 print(current / len(predictions))
str_column_to_float(dataSet, i) str_column_to_int(dataSet, len(dataSet[0]) - 1) max_depth = 10 min_size = 2 print(len(dataSet)) tree = fit(dataSet[0:150], max_depth, min_size) print(tree) ####可视化 import treePlotter2 from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号'-'显示为方块的问题 treePlotter2.createPlot(tree) ##可视化 ##剪枝 import ART_punning punning_tree = ART_punning.prune(tree, dataSet[150:200]) treePlotter2.createPlot(punning_tree) ##可视化 ## predictions = [predict(tree, row) for row in dataSet[150:]] realLabels = [row[-1] for row in dataSet[150:]] current = 0 for i in range(len(predictions)): if predictions[i] > 0.5:
# -*- coding: utf-8 -*- from numpy import * from math import log from C45DTree import * import treePlotter2 dtree = C45DTree() dtree.loadDataSet("dataset.dat",["age","revenue","student","credit"]) dtree.train() print dtree.tree treePlotter2.createPlot(dtree.tree)