1 import sys
2
5 self.className = None
6 self.examplesByClass = {}
7 self.filteredByClass = {}
8 self.filteredByClassByFilter = {}
9 self.counts = {}
10 self.values = {}
11 self.variables = {}
12
14 if name not in self.values:
15 self.values[name] = 0
16 self.values[name] += amount
17
19 self.variables[name] = variable
20
23
29
31 assert self.className == None
32
33 self.className = className
34 self.filteredBy = set()
35
37 assert self.className != None
38 assert filterName != "total"
39 self.filteredBy.add(filterName)
40
42 assert self.className != None
43
44 if not self.examplesByClass.has_key(self.className):
45 self.examplesByClass[self.className] = 0
46 self.examplesByClass[self.className] += 1
47
48 if not self.filteredByClass.has_key(self.className):
49 self.filteredByClass[self.className] = 0
50 if len(self.filteredBy) > 0:
51 self.filteredByClass[self.className] += 1
52
53 for filter in self.filteredBy:
54 if not self.filteredByClassByFilter.has_key(self.className):
55 self.filteredByClassByFilter[self.className] = {}
56 if not self.filteredByClassByFilter[self.className].has_key(filter):
57 self.filteredByClassByFilter[self.className][filter] = 0
58 self.filteredByClassByFilter[self.className][filter] += 1
59 self.className = None
60
62 return sum(self.examplesByClass.values())
63
65 print >> sys.stderr, "Example Statistics (total/filtered)"
66
67 counts = [0,0]
68 for className in sorted(self.examplesByClass.keys()):
69 if self.filteredByClassByFilter.has_key(className):
70 filterStr = str( self.filteredByClassByFilter[className] )
71 else:
72 filterStr = ""
73 print >> sys.stderr, " ", className + ": " + str(self.examplesByClass[className]) + "/" + str(self.filteredByClass[className]), filterStr
74 if className != "neg":
75 counts[0] += self.examplesByClass[className]
76 counts[1] += self.filteredByClass[className]
77 if counts[0] != 0:
78 posCoverage = float(counts[0] - counts[1]) / float(counts[0]) * 100.0
79 print >> sys.stderr, "Positives Coverage %.2f" % posCoverage, "%", counts
80
81 for value in sorted(self.values.keys()):
82 print >> sys.stderr, value + ":", self.values[value]
83 for variable in sorted(self.variables.keys()):
84 print >> sys.stderr, variable + ":", self.variables[variable]
85
86
87
88