#!/usr/bin/python # -*- coding: utf-8 -*- import orange, orngC45, sys, pickle def make_tree(fname, memory, remember): data = orange.ExampleTable(fname) print fname, data.domain.classVar.values tree = orange.C45Learner(data) if remember: memory.append(tree) tfname = fname + '.tree' f = open(tfname, 'w') pickle.dump(tree, f) f.close() print 'Tree saved to', tfname print 'classVar:', tree.classVar.values def load_tree(fname, memory, remember): tfname = fname + '.tree' f = open(tfname) tree = pickle.load(f) if remember: memory.append(tree) f.close() print 'Tree loaded from', tfname print 'classVar:', tree.classVar.values orngC45.printTree(tree) if __name__ == '__main__': f_data1 = 'zoo.tab' f_data2 = 'zoo2.tab' memory = [] if len(sys.argv) > 1: remember = 'r' in sys.argv[1] for c in sys.argv[1]: if c == '1': make_tree(f_data1, memory, remember) elif c == '2': make_tree(f_data2, memory, remember) elif c == 'a': load_tree(f_data1, memory, remember) elif c == 'b': load_tree(f_data2, memory, remember)