Ignore:
Timestamp:
10/17/12 14:03:43 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed an error in 'sendReport' when evaluating on a regression problem.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Evaluate/OWTestLearners.py

    r10999 r11000  
    262262 
    263263    def sendReport(self): 
     264        method = [("Method", self.resamplingMethods[self.resampling])] 
     265 
    264266        exset = [] 
     267 
    265268        if self.resampling == 0: 
    266269            exset = [("Folds", self.nFolds)] 
    267270        elif self.resampling == 2: 
    268             exset = [("Repetitions", self.pRepeat), ("Proportion of training instances", "%i%%" % self.pLearning)] 
     271            exset = [("Repetitions", self.pRepeat), 
     272                     ("Proportion of training instances", "%i%%" \ 
     273                      % self.pLearning)] 
    269274        else: 
    270275            exset = [] 
     276 
     277        if self.data and \ 
     278                isinstance(self.data.domain.classVar, orange.EnumVariable): 
     279            target = [("Target class", 
     280                       self.data.domain.classVar.values[self.targetClass])] 
     281        else: 
     282            target = [] 
     283 
    271284        if not self.ismultilabel(): 
    272             self.reportSettings("Validation method", 
    273                             [("Method", self.resamplingMethods[self.resampling])] 
    274                             + exset + 
    275                             ([("Target class", self.data.domain.classVar.values[self.targetClass])] if self.data else [])) 
    276         else: 
    277              self.reportSettings("Validation method", 
    278                             [("Method", self.resamplingMethods[self.resampling])] 
    279                             + exset) 
    280          
     285            self.reportSettings("Validation method", method + exset + target) 
     286        else: 
     287            self.reportSettings("Validation method", method + exset) 
     288 
    281289        self.reportData(self.data) 
    282290 
    283         if self.data:         
     291        if self.data: 
    284292            self.reportSection("Results") 
    285293            learners = [(l.time, l) for l in self.learners.values()] 
     
    287295            learners = [lt[1] for lt in learners] 
    288296            usestat = self.get_usestat() 
    289             res = "<table><tr><th></th>"+"".join("<th><b>%s</b></th>" % hr for hr in [s.label for i, s in enumerate(self.stat) if i in usestat])+"</tr>" 
    290             for i, l in enumerate(learners): 
    291                 res += "<tr><th><b>%s</b></th>" % l.name 
    292                 if l.scores: 
     297            # table header 
     298            res = "<table><tr><th></th>" + \ 
     299                  "".join("<th><b>%s</b></th>" % s.label \ 
     300                          for i, s in enumerate(self.stat) \ 
     301                          if i in usestat) + \ 
     302                  "</tr>" 
     303 
     304            for i, learner in enumerate(learners): 
     305                res += "<tr><th><b>%s</b></th>" % learner.name 
     306                if learner.scores: 
    293307                    for j in usestat: 
    294                         scr = l.scores[j] 
    295                         res += "<td>" + ("%.4f" % scr if scr is not None else "") + "</td>" 
     308                        score = learner.scores[j] 
     309                        score = "%.4f" % score if score is not None else "" 
     310                        res += "<td>" + score + "</td>" 
    296311                res += "</tr>" 
    297312            res += "</table>" 
    298313            self.reportRaw(res) 
    299              
     314 
    300315    def score(self, ids): 
    301316        """compute scores for the list of learners""" 
Note: See TracChangeset for help on using the changeset viewer.