예제 #1
0
 def saveDot(self, filename=None):
     if filename==None:
         filename = QFileDialog.getSaveFileName(self, "Save to ...", "tree.dot", "Dot Tree File (.DOT)")
         filename = unicode(filename)
         if not filename:
             return
     orngTree.printDot(self.tree, filename)
예제 #2
0
 def print_tree(self, data, visual):
     """
     Decision Tree from the data set
     """
     tree = learner(data)
     orngTree.printTxt(tree)
     if visual: # visual equals true allows plotting a visual tree. A .dot file is written into the current directory.
         orngTree.printDot(tree, fileName='tree.dot', internalNodeShape="ellipse", leafShape="box")
예제 #3
0
 def saveDot(self, filename=None):
     if filename == None:
         filename = str(
             QFileDialog.getSaveFileName(self, "Save to ...", "tree.dot",
                                         "Dot Tree File (.DOT)"))
         if not filename:
             return
     orngTree.printDot(self.tree, filename)
예제 #4
0
 def print_tree(self, data, visual):
     """
     Decision Tree from the data set
     """
     tree = learner(data)
     orngTree.printTxt(tree)
     if visual:  # visual equals true allows plotting a visual tree. A .dot file is written into the current directory.
         orngTree.printDot(tree,
                           fileName='tree.dot',
                           internalNodeShape="ellipse",
                           leafShape="box")
예제 #5
0
    def report_tree(self, name):
        filename = name + '.tsv'
        stream = file(filename, 'wt')

        # header
        stream.write('\t'.join(self.names) + '\n')
        stream.write('\t'.join(self.types) + '\n')
        stream.write('class\n')

        # rows
        for row in self.rows:
            if row[0] == 'skip':
                continue
            row += [''] * (len(self.names) - len(row))
            stream.write('\t'.join(row) + '\n')

        stream.close()

        # See http://www.ailab.si/orange/doc/ofb/c_otherclass.htm
        try:
            import orange
            import orngTree
        except ImportError:
            sys.stderr.write(
                'Install Orange from http://www.ailab.si/orange/ for a classification tree.\n'
            )
            return None

        data = orange.ExampleTable(filename)

        tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

        orngTree.printTxt(tree, maxDepth=4)

        text_tree = orngTree.dumpTree(tree)

        file(name + '.txt', 'wt').write(text_tree)

        orngTree.printDot(tree,
                          fileName=name + '.dot',
                          nodeShape='ellipse',
                          leafShape='box')

        return text_tree
예제 #6
0
    def summary(self):
        sys.stdout.write("%u tests, %u passed, %u skipped, %u failed\n\n" %
                         (self.tests, self.passed, self.skipped, self.failed))
        sys.stdout.flush()

        name, ext = os.path.splitext(os.path.basename(sys.argv[0]))
        filename = name + '.tsv'
        stream = file(filename, 'wt')

        # header
        stream.write('\t'.join(self.names) + '\n')
        stream.write('\t'.join(self.types) + '\n')
        stream.write('class\n')

        # rows
        for row in self.rows:
            row += [''] * (len(self.names) - len(row))
            stream.write('\t'.join(row) + '\n')

        stream.close()

        # See http://www.ailab.si/orange/doc/ofb/c_otherclass.htm
        try:
            import orange
            import orngTree
        except ImportError:
            sys.stderr.write(
                'Install Orange from http://www.ailab.si/orange/ for a classification tree.\n'
            )
            return

        data = orange.ExampleTable(filename)

        tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

        orngTree.printTxt(tree, maxDepth=4)

        file(name + '.txt', 'wt').write(orngTree.dumpTree(tree))

        orngTree.printDot(tree,
                          fileName=name + '.dot',
                          nodeShape='ellipse',
                          leafShape='box')
예제 #7
0
    def report_tree(self, name):
        filename = name + '.tsv'
        stream = file(filename, 'wt')

        # header
        stream.write('\t'.join(self.names) + '\n')
        stream.write('\t'.join(self.types) + '\n')
        stream.write('class\n')

        # rows
        for row in self.rows:
            if row[0] == 'skip':
                continue
            row += ['']*(len(self.names) - len(row))
            stream.write('\t'.join(row) + '\n')

        stream.close()

        # See http://www.ailab.si/orange/doc/ofb/c_otherclass.htm
        try:
            import orange
            import orngTree
        except ImportError:
            sys.stderr.write('Install Orange from http://www.ailab.si/orange/ for a classification tree.\n')
            return None

        data = orange.ExampleTable(filename)

        tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

        orngTree.printTxt(tree, maxDepth=4)

        text_tree = orngTree.dumpTree(tree)

        file(name + '.txt', 'wt').write(text_tree)

        orngTree.printDot(tree, fileName=name+'.dot', nodeShape='ellipse', leafShape='box')

        return text_tree
예제 #8
0
def classifier(personalrecords, features , attlist ,lowage, upage ,estimation):
    data = orange.ExampleTable(createAttributes(attlist), getallfeatures(personalrecords,attlist,
                                                                         lowage, upage, 'MONTHS'))
    bayes = orange.BayesLearner()
    bayesWithEstimation = orange.BayesLearner(m=estimation)
    tree = orngTree.TreeLearner(mForPruning=2)
    bayes.name = "bayes"
    bayesWithEstimation.name = "bayesWithEstimation"
    tree.name = "tree"
    learners = [bayes, bayesWithEstimation]
    print '10 fold cross validattion'
    results = orngTest.crossValidation(learners, data, folds=10)
    # output the results
    print "Learner  CA     IS     Brier    AUC"
    for i in range(len(learners)):
        print "%-8s %5.3f  %5.3f  %5.3f  %5.3f" % (learners[i].name, \
                                                   orngStat.CA(results)[i], orngStat.IS(results)[i],
                                                   orngStat.BrierScore(results)[i], orngStat.AUC(results)[i])
        if learners[i].name == 'bayes' or learners[i].name == 'bayesWithEstimation':
            
    orngTree.printDot(tree, fileName='c:\\tree10.dot', internalNodeShape="ellipse", leafShape="box")
    
    orngTree.printDot(bayes, fileName='c:\\bayes10.dot', internalNodeShape="ellipse", leafShape="box")
예제 #9
0
    def summary(self):
        sys.stdout.write("%u tests, %u passed, %u skipped, %u failed\n\n" % (self.tests, self.passed, self.skipped, self.failed))
        sys.stdout.flush()

        name, ext = os.path.splitext(os.path.basename(sys.argv[0]))
        filename = name + '.tsv'
        stream = file(filename, 'wt')

        # header
        stream.write('\t'.join(self.names) + '\n')
        stream.write('\t'.join(self.types) + '\n')
        stream.write('class\n')

        # rows
        for row in self.rows:
            row += ['']*(len(self.names) - len(row))
            stream.write('\t'.join(row) + '\n')

        stream.close()

        # See http://www.ailab.si/orange/doc/ofb/c_otherclass.htm
        try:
            import orange
            import orngTree
        except ImportError:
            sys.stderr.write('Install Orange from http://www.ailab.si/orange/ for a classification tree.\n')
            return

        data = orange.ExampleTable(filename)

        tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

        orngTree.printTxt(tree, maxDepth=4)

        file(name+'.txt', 'wt').write(orngTree.dumpTree(tree))

        orngTree.printDot(tree, fileName=name+'.dot', nodeShape='ellipse', leafShape='box')
예제 #10
0
#!/usr/bin/env python
#
# See also:
#  http://www.ailab.si/orange/doc/ofb/c_otherclass.htm

import os.path
import sys

import orange
import orngTree

for arg in sys.argv[1:]:
    name, ext = os.path.splitext(arg)

    data = orange.ExampleTable(arg)

    tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

    orngTree.printTxt(tree)

    file(name + '.txt', 'wt').write(orngTree.dumpTree(tree) + '\n')

    orngTree.printDot(tree,
                      fileName=name + '.dot',
                      nodeShape='ellipse',
                      leafShape='box')
예제 #11
0
# Description: Learn decision tree from data and output class probabilities for first few instances
# Category:    modelling
# Uses:        voting.tab
# Classes:     orngTree.TreeLearner
# Referenced:  c_otherclass.htm

import orange, orngTree
data = orange.ExampleTable("voting")

tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)
print "Possible classes:", data.domain.classVar.values
print "Probabilities for democrats:"
for i in range(5):
    p = tree(data[i], orange.GetProbabilities)
    print "%d: %5.3f (originally %s)" % (i+1, p[1], data[i].getclass())

print
orngTree.printTxt(tree)
orngTree.printDot(tree, fileName='tree.dot', internalNodeShape="ellipse", leafShape="box")

예제 #12
0
# Author:      J Zabkar
# Version:     1.0
# Description: Demostration of use of orngTree module: prin out
#              a tree in text and dot format
# Category:    modelling
# Uses:        iris
# Referenced:  orngTree.htm

import orange, orngTree
data = orange.ExampleTable("iris.tab")
tree = orange.TreeLearner(data)
orngTree.printTree(tree)
orngTree.printDot(tree, fileName="tree1.dot")
예제 #13
0
#!/usr/bin/env python
# 
# See also:
#  http://www.ailab.si/orange/doc/ofb/c_otherclass.htm

import os.path
import sys

import orange
import orngTree

for arg in sys.argv[1:]:
    name, ext = os.path.splitext(arg)

    data = orange.ExampleTable(arg)

    tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)

    orngTree.printTxt(tree)

    file(name+'.txt', 'wt').write(orngTree.dumpTree(tree) + '\n')

    orngTree.printDot(tree, fileName=name+'.dot', nodeShape='ellipse', leafShape='box')
예제 #14
0
# Description: Learn decision tree from data and output class probabilities for first few instances
# Category:    modelling
# Uses:        voting.tab
# Classes:     orngTree.TreeLearner
# Referenced:  c_otherclass.htm

import orange, orngTree

data = orange.ExampleTable("voting")

tree = orngTree.TreeLearner(data, sameMajorityPruning=1, mForPruning=2)
print "Possible classes:", data.domain.classVar.values
print "Probabilities for democrats:"
for i in range(5):
    p = tree(data[i], orange.GetProbabilities)
    print "%d: %5.3f (originally %s)" % (i + 1, p[1], data[i].getclass())

print
orngTree.printTxt(tree)
orngTree.printDot(tree,
                  fileName='tree.dot',
                  internalNodeShape="ellipse",
                  leafShape="box")