def test_breadth_first_search(): n0 = Node() n0.label = 1 n1 = Node() n1.label = 0 n = Node() n.label = None n.decision_attribute = 1 n.is_nominal = True n.name = "whatever" n.children = {1: n0, 2: n1} print n.print_tree() print breadth_first_search(n) return n
def more_tests(): n2 = Node() n2.name = "attrib2" n2.label = 1 n3 = Node() n3.name = "attrib3" n3.label = 0 n0 = Node() n0.name = "attrib0" n0.is_nominal = True n0.children = {1: n2, 2: n3} n4 = Node() n4.name = "attrib4" n4.label = 2 n5 = Node() n5.name = "attrib5" n5.label = 3 n1 = Node() n1.name = "attrib1" n1.is_nominal = True n1.children = {1: n4, 2: n5} n = Node() n.label = None n.decision_attribute = 1 n.is_nominal = True n.name = "attrib" n.children = {1: n0, 2: n1} print n.print_dnf_tree() print n.print_tree() print breadth_first_search(n, [n]) attribute_metadata = [{'name': "winner",'is_nominal': True},{'name': "opprundifferential",'is_nominal': False}] data_set = [[1, 0.27], [0, 0.42], [0, 0.86], [0, 0.68], [0, 0.04], [1, 0.01], [1, 0.33], [1, 0.42], [1, 0.42], [0, 0.51], [1, 0.4]] numerical_splits_count = [5, 5] n = ID3(data_set, attribute_metadata, numerical_splits_count, 0) print validation_accuracy(n,data_set) numerical_splits_count = [1, 1] n = ID3(data_set, attribute_metadata, numerical_splits_count, 5) print validation_accuracy(n,data_set) numerical_splits_count = [5, 5] n = ID3(data_set, attribute_metadata, numerical_splits_count, 5) print validation_accuracy(n,data_set) print n.print_tree() n = reduced_error_pruning(n,data_set,[[1, 0.11], [0, 0.42], [0, 0.86], [0, 0.55], [0, 0.66], [1, 0.01], [1, 0.11], [1, 0.84], [1, 0.42], [0, 0.51], [1, 0.4]]) print n.print_tree() return n