def A31():
    tree = dT.buildTree(m.monk1, m.attributes, 5)
    print tree
    draw.drawTree(tree)
示例#2
0
for subset in sel:
    for i in [0, 1, 2, 3, 5]:
        sub.append(t.averageGain(subset, m.attributes[i]))
    mC.append(t.mostCommon(subset))

    # print(sub)
    sub = []

"Highest information gain on second level of the tree # 2 - A4 , 3 - A6 , 4 - A1 #"

"""Assignment 3"""
tree1 = t.buildTree(m.monk1, m.attributes)
tree2 = t.buildTree(m.monk2, m.attributes)
tree3 = t.buildTree(m.monk3, m.attributes)

draw.drawTree(tree1)
# draw.drawTree(tree2)
# draw.drawTree(tree3)

print("Assignment 3: Decision tree performances")

print("Train errors:")
print(1 - round(t.check(tree1, m.monk1), 5))
print(1 - round(t.check(tree2, m.monk2), 5))
print(1 - round(t.check(tree3, m.monk3), 5))

print("Test errors:")
print(round(1 - t.check(tree1, m.monk1test), 5))
print(round(1 - t.check(tree2, m.monk2test), 5))
print(round(1 - t.check(tree3, m.monk3test), 5), "\n")
示例#3
0
def A31():
  tree = dT.buildTree( m.monk1, m.attributes, 5 )
  print tree
  draw.drawTree( tree )
示例#4
0
文件: main.py 项目: Axram/ML_Lab1
def draw_tree(dataset):
        #Draws a decision tree from dataset
        t = dt.buildTree(dataset, m.attributes)
        dw.drawTree(t)
        return t
示例#5
0
import dtree as d
import monkdata as m
import drawtree as dt

def isLeaf(subset):
	return d.allPositive(subset) or d.allNegative(subset)

def buildTree(subset,attrs):
	global tree
	if isLeaf(subset):
		tree = (tree + '+') if d.allPositive(subset) else (tree + '-')
		return
	else:
		root = d.bestAttribute(subset,attrs)
		tree = tree + str(root) + "("
		for value in root.values:
			nextSubset = d.select(subset,root,value)
			nextAttrs = attrs - set([root])
			buildTree(nextSubset,nextAttrs)
		tree = tree + ")"

tree = ""

buildTree(m.monk1,set(m.attributes))

#dt.drawTree(tree)
id3tree = d.buildTree(m.monk1,m.attributes)
dt.drawTree(id3tree)
import monkdata as m
import dtree as dt
import drawtree as draw

entropy = dt.entropy(m.monk1)
best_gain = 0
for attribute in m.attributes:
    gain = dt.averageGain(m.monk1, attribute)
    if gain > best_gain:
        best_gain = gain
        best_attribute = attribute

for v in best_attribute.values:
    subset = dt.select(m.monk1, best_attribute, v)
    majority_class = dt.mostCommon(subset)

values = {
    v: dt.mostCommon(dt.select(m.monk1, best_attribute, v))
    for v in best_attribute.values
}
print(best_attribute, values)
draw.drawTree(dt.buildTree(m.monk1, m.attributes, 2))
import monkdata as m
import dtree as dt
import drawtree as draw

entropy = dt.entropy(m.monk1)
best_gain = 0
for attribute in m.attributes:
    gain = dt.averageGain(m.monk1, attribute)
    if gain > best_gain:
        best_gain = gain
        best_attribute = attribute


for v in best_attribute.values:
    subset = dt.select(m.monk1, best_attribute, v)
    majority_class = dt.mostCommon(subset)

values = {v: dt.mostCommon(dt.select(m.monk1, best_attribute, v)) for v in best_attribute.values}
print(best_attribute, values)
draw.drawTree(dt.buildTree(m.monk1, m.attributes, 2))