src/HOL/Tools/Sledgehammer/MaSh/src/stats.py
author blanchet
Thu, 06 Dec 2012 11:25:10 +0100
changeset 50388 a5b666e0c3c2
parent 50222 40e3c3be6bca
child 50951 e1cbaa7d5536
permissions -rw-r--r--
added weights to MaSh (by Daniel Kuehlwein)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50222
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     1
#     Title:      HOL/Tools/Sledgehammer/MaSh/src/stats.py
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     2
#     Author:     Daniel Kuehlwein, ICIS, Radboud University Nijmegen
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     3
#     Copyright   2012
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     4
#
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     5
# Statistics collector.
40e3c3be6bca added file headers
blanchet
parents: 50220
diff changeset
     6
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
     7
'''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
     8
Created on Jul 9, 2012
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
     9
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    10
@author: Daniel Kuehlwein
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    11
'''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    12
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    13
import logging,string
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    14
from cPickle import load,dump
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    15
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    16
class Statistics(object):
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    17
    '''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    18
    Class for all the statistics
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    19
    '''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    20
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    21
    def __init__(self,cutOff=500):
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    22
        '''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    23
        Constructor
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    24
        '''
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    25
        self.logger = logging.getLogger('Statistics')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    26
        self.avgAUC = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    27
        self.avgRecall100 = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    28
        self.avgAvailable = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    29
        self.avgDepNr = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    30
        self.problems = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    31
        self.cutOff = cutOff
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    32
        self.recallData = [0]*cutOff
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    33
        self.recall100Data = [0]*cutOff
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    34
        self.aucData = []
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    35
        self.premiseOccurenceCounter = {}
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    36
        self.firstDepAppearance = {}
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    37
        self.depAppearances = []
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    38
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    39
    def update(self,predictions,dependencies,statementCounter):
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    40
        """
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    41
        Evaluates AUC, dependencies, recall100 and number of available premises of a prediction.
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    42
        """
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    43
        available = len(predictions)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    44
        predictions = predictions[:self.cutOff]
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    45
        dependencies = set(dependencies)
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    46
        # No Stats for if no dependencies
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    47
        if len(dependencies) == 0:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    48
            self.logger.debug('No Dependencies for statement %s' % statementCounter )
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    49
            self.badPreds = []
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    50
            return
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    51
        if len(predictions) < self.cutOff:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    52
            for i in range(len(predictions),self.cutOff):
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    53
                self.recall100Data[i] += 1
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    54
                self.recallData[i] += 1
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    55
        for d in dependencies:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    56
            if self.premiseOccurenceCounter.has_key(d):
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    57
                self.premiseOccurenceCounter[d] += 1
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    58
            else:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    59
                self.premiseOccurenceCounter[d] = 1
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    60
            if self.firstDepAppearance.has_key(d):
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    61
                self.depAppearances.append(statementCounter-self.firstDepAppearance[d])
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    62
            else:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    63
                self.firstDepAppearance[d] = statementCounter
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    64
        depNr = len(dependencies)
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    65
        aucSum = 0.
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    66
        posResults = 0.
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    67
        positives, negatives = 0, 0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    68
        recall100 = 0.0
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    69
        badPreds = []
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    70
        depsFound = []
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    71
        for index,pId in enumerate(predictions):
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    72
            if pId in dependencies:        #positive
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    73
                posResults+=1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    74
                positives+=1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    75
                recall100 = index+1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    76
                depsFound.append(pId)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    77
                if index > 200:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    78
                    badPreds.append(pId)
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    79
            else:
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    80
                aucSum += posResults
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    81
                negatives+=1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    82
            # Update Recall and Recall100 stats
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    83
            if depNr == positives:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    84
                self.recall100Data[index] += 1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    85
            if depNr == 0:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    86
                self.recallData[index] += 1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    87
            else:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    88
                self.recallData[index] += float(positives)/depNr
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
    89
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    90
        if not depNr == positives:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    91
            depsFound = set(depsFound)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    92
            missing = []
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    93
            for dep in dependencies:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    94
                if not dep in depsFound:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    95
                    missing.append(dep)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    96
                    badPreds.append(dep)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    97
                    recall100 = len(predictions)+1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    98
                    positives+=1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
    99
            self.logger.debug('Dependencies missing for %s in accessibles! Estimating Statistics.',\
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   100
                              string.join([str(dep) for dep in missing],','))
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   101
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   102
        if positives == 0 or negatives == 0:
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   103
            auc = 1.0
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   104
        else:
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   105
            auc = aucSum/(negatives*positives)
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   106
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   107
        self.aucData.append(auc)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   108
        self.avgAUC += auc
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   109
        self.avgRecall100 += recall100
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   110
        self.problems += 1
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   111
        self.badPreds = badPreds
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   112
        self.avgAvailable += available
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   113
        self.avgDepNr += depNr
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   114
        self.logger.info('Statement: %s: AUC: %s \t Needed: %s \t Recall100: %s \t Available: %s \t cutOff:%s',\
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   115
                          statementCounter,round(100*auc,2),depNr,recall100,available,self.cutOff)
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   116
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   117
    def printAvg(self):
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   118
        self.logger.info('Average results:')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   119
        self.logger.info('avgAUC: %s \t avgDepNr: %s \t avgRecall100: %s \t cutOff:%s', \
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   120
                         round(100*self.avgAUC/self.problems,2),round(self.avgDepNr/self.problems,2),round(self.avgRecall100/self.problems,2),self.cutOff)
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   121
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   122
        #try:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   123
        if True:
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   124
            from matplotlib.pyplot import plot,figure,show,xlabel,ylabel,axis,hist
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   125
            avgRecall = [float(x)/self.problems for x in self.recallData]
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   126
            figure('Recall')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   127
            plot(range(self.cutOff),avgRecall)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   128
            ylabel('Average Recall')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   129
            xlabel('Highest ranked premises')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   130
            axis([0,self.cutOff,0.0,1.0])
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   131
            figure('100%Recall')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   132
            plot(range(self.cutOff),self.recall100Data)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   133
            ylabel('100%Recall')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   134
            xlabel('Highest ranked premises')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   135
            axis([0,self.cutOff,0,self.problems])
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   136
            figure('AUC Histogram')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   137
            hist(self.aucData,bins=100)
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   138
            ylabel('Problems')
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   139
            xlabel('AUC')
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   140
            maxCount = max(self.premiseOccurenceCounter.values())
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   141
            minCount = min(self.premiseOccurenceCounter.values())
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   142
            figure('Dependency Occurances')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   143
            hist(self.premiseOccurenceCounter.values(),bins=range(minCount,maxCount+2),align = 'left')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   144
            #ylabel('Occurences')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   145
            xlabel('Number of Times a Dependency Occurs')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   146
            figure('Dependency Appearance in Problems after Introduction.')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   147
            hist(self.depAppearances,bins=50)
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   148
            figure('Dependency Appearance in Problems after Introduction in Percent.')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   149
            xAxis = range(max(self.depAppearances)+1)
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   150
            yAxis = [0] * (max(self.depAppearances)+1)
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   151
            for val in self.depAppearances:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   152
                yAxis[val] += 1
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   153
            yAxis = [float(x)/len(self.firstDepAppearance.keys()) for x in yAxis]
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   154
            plot(xAxis,yAxis)
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   155
            show()
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   156
        #except:
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   157
        #    self.logger.warning('Matplotlib module missing. Skipping graphs.')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   158
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   159
    def save(self,fileName):
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   160
        oStream = open(fileName, 'wb')
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   161
        dump((self.avgAUC,self.avgRecall100,self.avgAvailable,self.avgDepNr,self.problems,self.cutOff,self.recallData,self.recall100Data,self.aucData,self.premiseOccurenceCounter),oStream)
50220
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   162
        oStream.close()
90280d85cd03 moved MaSh's Python code into Isabelle
blanchet
parents:
diff changeset
   163
    def load(self,fileName):
50388
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   164
        iStream = open(fileName, 'rb')
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   165
        self.avgAUC,self.avgRecall100,self.avgAvailable,self.avgDepNr,self.problems,self.cutOff,self.recallData,self.recall100Data,self.aucData,self.premiseOccurenceCounter = load(iStream)
a5b666e0c3c2 added weights to MaSh (by Daniel Kuehlwein)
blanchet
parents: 50222
diff changeset
   166
        iStream.close()