Example #1
0
File: test.py Project: inim4/CaMML
def printGnuplot( key ):
	import py_stats
	fr = fullResults
	#
	## Extract keys.
	files = map( getLocalName, fList )	
	#learners = map( lambda x : x[0], localStructureLearner )
	# Learners in order required by gnuplot scripts.
	learners = ['CPT', 'logit', 'tree', 'dualCTL',   'FBDe', 'FBDe-Tree']
	folds = fr[files[0]][learners[0]].keys()
	#
	## Print Learner Key
	print "# ",
	for x in learners: print x,
	print
	#
	## Print out actual data.
	for f in files:
		n = f.split('.')[-1]     # Print number of cases
		print str(n), "\t",
		for x in learners:
			data = []
			for xx in fr[f][x].values():
				if xx.has_key(key): data.append( xx[key] )
			if len(data) > 1: print "%4.8f\t" % py_stats.mean(data),
			else: print "& XXX & XXX",
		for x in learners:
			data = []
			for xx in fr[f][x].values():
				if xx.has_key(key): data.append( xx[key] )
			if len(data) > 1: print "%4.8f\t" % py_stats.sterr(data),
			else: print "& XXX & XXX",
Example #2
0
File: test.py Project: inim4/CaMML
def printAverage( key, sort = True ):
	import py_stats
	print "\nTotal - ", key
	t = {}
	fr = fullResults
	netNames = map( getLocalName, fList )	
	#netNames = fr.keys()
	#netNames.sort() # Make a consistent ordering.
	for data in netNames:
		print "\n",data, key
		summary = []
		for k in localStructureLearner: #fr['balance-scale.arff'].keys():
			if fr[data].keys().count(k[0]) == 0: continue
			k = k[0]
			t[k] = []
			for i in fr[data][k].keys():
				## I think there is a bug here in jython serialisation
				debug[0] = fr[data][k][i]
				try:
					if not isNone(debug[0]):# != None:
						if fr[data][k][i].has_key(key) and (not isNone(fr[data][k][i][key])):
							t[k].append( fr[data][k][i][key] )
						elif key.endswith(".2") and  fr[data][k][i].has_key(key[:-2]) and (not isNone(fr[data][k][i][key[:-2]])):
							t[k].append( fr[data][k][i][key[:-2]] )
				except AttributeError:					
					print "Ignoring exception, probably due to buggy serialisation", debug[0], k, i, str(debug[0])
					continue # Do nothing.
			if len(t[k]) > 1 :
				summary.append( {"mean":py_stats.mean(t[k]), "sterr":py_stats.sterr(t[k]),"len":len(t[k]), "name": k } )
			else: summary.append( {"mean":0, "sterr":0,"len":len(t[k]), "name": k } ) 
		if sort: summary.sort(lambda a,b: a["mean"] > b["mean"])
		#
		for x in summary: print pad(x["name"],11), "\tmean=",x["mean"], "\tsterr=",x["sterr"], "\tlen", x["len"]
Example #3
0
def printGnuplot(key):
    import py_stats
    fr = fullResults
    #
    ## Extract keys.
    files = map(getLocalName, fList)
    #learners = map( lambda x : x[0], localStructureLearner )
    # Learners in order required by gnuplot scripts.
    learners = ['CPT', 'logit', 'tree', 'dualCTL', 'FBDe', 'FBDe-Tree']
    folds = fr[files[0]][learners[0]].keys()
    #
    ## Print Learner Key
    print "# ",
    for x in learners:
        print x,
    print
    #
    ## Print out actual data.
    for f in files:
        n = f.split('.')[-1]  # Print number of cases
        print str(n), "\t",
        for x in learners:
            data = []
            for xx in fr[f][x].values():
                if xx.has_key(key): data.append(xx[key])
            if len(data) > 1: print "%4.8f\t" % py_stats.mean(data),
            else: print "& XXX & XXX",
        for x in learners:
            data = []
            for xx in fr[f][x].values():
                if xx.has_key(key): data.append(xx[key])
            if len(data) > 1: print "%4.8f\t" % py_stats.sterr(data),
            else: print "& XXX & XXX",
Example #4
0
def printAverage(key, sort=True):
    import py_stats
    print "\nTotal - ", key
    t = {}
    fr = fullResults
    netNames = map(getLocalName, fList)
    #netNames = fr.keys()
    #netNames.sort() # Make a consistent ordering.
    for data in netNames:
        print "\n", data, key
        summary = []
        for k in localStructureLearner:  #fr['balance-scale.arff'].keys():
            if fr[data].keys().count(k[0]) == 0: continue
            k = k[0]
            t[k] = []
            for i in fr[data][k].keys():
                ## I think there is a bug here in jython serialisation
                debug[0] = fr[data][k][i]
                try:
                    if not isNone(debug[0]):  # != None:
                        if fr[data][k][i].has_key(key) and (not isNone(
                                fr[data][k][i][key])):
                            t[k].append(fr[data][k][i][key])
                        elif key.endswith(".2") and fr[data][k][i].has_key(
                                key[:-2]) and (not isNone(
                                    fr[data][k][i][key[:-2]])):
                            t[k].append(fr[data][k][i][key[:-2]])
                except AttributeError:
                    print "Ignoring exception, probably due to buggy serialisation", debug[
                        0], k, i, str(debug[0])
                    continue  # Do nothing.
            if len(t[k]) > 1:
                summary.append({
                    "mean": py_stats.mean(t[k]),
                    "sterr": py_stats.sterr(t[k]),
                    "len": len(t[k]),
                    "name": k
                })
            else:
                summary.append({
                    "mean": 0,
                    "sterr": 0,
                    "len": len(t[k]),
                    "name": k
                })
        if sort: summary.sort(lambda a, b: a["mean"] > b["mean"])
        #
        for x in summary:
            print pad(
                x["name"], 11
            ), "\tmean=", x["mean"], "\tsterr=", x["sterr"], "\tlen", x["len"]
Example #5
0
def printLatex(key):
    import py_stats
    fr = fullResults
    #
    ## Extract keys.
    files = fr.keys()
    learners = fr[files[0]].keys()
    folds = fr[files[0]][learners[0]].keys()
    #
    ## Begin printing latex.
    ## -- Header.
    print "\\begin{table}[htbp]"
    print "\t\\centering"
    print "\t\\scriptsize"
    print "\t\\begin{tabular}{|c|",
    for _ in files:
        print "rr|",
    print "} \\hline"
    #
    ## File names.
    print "\tDataset ",
    for f in files:
        print "& \\multicolumn{2}{|c|}{", f[:-4], "} ",
    print "\\tabularnewline \\hline \\hline"
    print "\tMetric   ",
    for _ in files:
        print "& Mean    & SE            ",
    print "\\tabularnewline \\hline"
    #
    ## Print out actual data.
    for x in learners:
        print "\t" + str(x), "\t",
        for f in files:
            data = []
            for xx in fr[f][x].values():
                if xx.has_key(key): data.append(xx[key])
            #print "&", py_stats.mean(data), "& ", py_stats.sterr(data),
            if len(data) > 1:
                print "& %4.3f & %4.3f" % (py_stats.mean(data),
                                           py_stats.sterr(data)),
            else:
                print "& XXX & XXX",
        print " \\tabularnewline"
    #
    ## Print footer.
    print "\t\\hline"
    print "\t\\end{tabular}"
    print "\t\\caption{", key, "}"
    print "\t\\label{}"
    print "\\end{table}"
Example #6
0
File: test.py Project: inim4/CaMML
def printLatex( key ):
	import py_stats
	fr = fullResults
	#
	## Extract keys.
	files = fr.keys()
	learners = fr[files[0]].keys()
	folds = fr[files[0]][learners[0]].keys()
	#
	## Begin printing latex.
	## -- Header.
	print "\\begin{table}[htbp]"
	print "\t\\centering"
	print "\t\\scriptsize"
	print "\t\\begin{tabular}{|c|",
	for _ in files: print "rr|",
	print "} \\hline"
	#
	## File names.
	print "\tDataset ",
	for f in files: print "& \\multicolumn{2}{|c|}{",f[:-4],"} ",
	print "\\tabularnewline \\hline \\hline"
	print "\tMetric   ",
	for _ in files: print "& Mean    & SE            ",
	print "\\tabularnewline \\hline"
	#
	## Print out actual data.
	for x in learners:
		print "\t"+str(x), "\t",
		for f in files:
			data = []
			for xx in fr[f][x].values():
				if xx.has_key(key): data.append( xx[key] )
			#print "&", py_stats.mean(data), "& ", py_stats.sterr(data),
			if len(data) > 1: print "& %4.3f & %4.3f" % (py_stats.mean(data), py_stats.sterr(data)),
			else: print "& XXX & XXX",
		print " \\tabularnewline"