Changeset 9469:eb6befb35b95 in orange


Ignore:
Timestamp:
07/31/11 08:05:51 (3 years ago)
Author:
wencanluo <wencanluo@…>
Branch:
default
Convert:
bff3346fe033ef5ae514a0c24c05665b0b651b71
Message:

Fix a bug in testing.py

Location:
orange
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/evaluation/testing.py

    r9468 r9469  
    10251025 
    10261026    testset, testweight = demangleExamples(testset) 
    1027  
     1027    multilabel_flag = label.is_multilabel(testset) 
     1028     
    10281029    if not test_results: 
    1029         classVar = testset.domain.classVar 
    1030         if testset.domain.classVar.varType == Orange.data.Type.Discrete: 
    1031             values = classVar.values.native() 
    1032             baseValue = classVar.baseValue 
    1033         else: 
    1034             values = None 
    1035             baseValue = -1 
     1030        if multilabel_flag == 0: 
     1031            classVar = testset.domain.classVar 
     1032            if testset.domain.classVar.varType == Orange.data.Type.Discrete: 
     1033                values = classVar.values.native() 
     1034                baseValue = classVar.baseValue 
     1035            else: 
     1036                values = None 
     1037                baseValue = -1 
     1038        else: 
     1039             values = label.get_label_names(testset) 
     1040             base_value = None 
    10361041        test_results=ExperimentResults(1, [l.name for l in classifiers], values, 
    10371042                                       testweight!=0, baseValue) 
     
    10491054        test_results.examples = testset 
    10501055     
    1051     multilabel_flag = label.is_multilabel(testset) 
    10521056    if multilabel_flag == 0: 
    10531057        conv = examples.domain.classVar.varType == Orange.data.Type.Discrete and int or float 
  • orange/OrangeWidgets/Evaluate/OWTestLearners.py

    r9458 r9469  
    211211        return label.is_multilabel(self.data) == 1 
    212212     
     213    def set_usestat(self): 
     214        #usestat = [self.selectedRScores, self.selectedCScores][self.isclassification()] 
     215        if self.is_multilabel(): 
     216            usestat = self.selectedMScores 
     217        else: 
     218            usestat = [self.selectedRScores, self.selectedCScores][self.isclassification()] 
     219        return usestat 
     220     
    213221    def paintscores(self): 
    214222        """paints the table with evaluation scores""" 
     
    241249        self.tab.resizeColumnsToContents() 
    242250        self.tab.resizeRowsToContents() 
    243         usestat = [self.selectedRScores, self.selectedCScores][self.isclassification()] 
     251        usestat = self.set_usestat() 
     252         
    244253        for i in range(len(self.stat)): 
    245254            if i not in usestat: 
     
    254263        else: 
    255264            exset = [] 
    256         self.reportSettings("Validation method", 
     265        if not self.is_multilabel(): 
     266            self.reportSettings("Validation method", 
    257267                            [("Method", self.resamplingMethods[self.resampling])] 
    258268                            + exset + 
    259269                            ([("Target class", self.data.domain.classVar.values[self.targetClass])] if self.data else [])) 
     270        else: 
     271             self.reportSettings("Validation method", 
     272                            [("Method", self.resamplingMethods[self.resampling])] 
     273                            + exset) 
    260274         
    261275        self.reportData(self.data) 
     
    266280            learners.sort() 
    267281            learners = [lt[1] for lt in learners] 
    268             usestat = [self.selectedRScores, self.selectedCScores][self.isclassification()] 
    269              
     282            usestat = self.set_usestat() 
    270283            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>" 
    271284            for i, l in enumerate(learners): 
     
    539552    def newscoreselection(self): 
    540553        """handle change in set of scores to be displayed""" 
    541         if self.is_multilabel(): 
    542             usestat = self.selectedMScores 
    543         else: 
    544             usestat = [self.selectedRScores, self.selectedCScores][self.isclassification()] 
     554        usestat = self.set_usestat() 
    545555         
    546556        for i in range(len(self.stat)): 
  • orange/doc/Orange/rst/code/mlc-classify.py

    r9464 r9469  
    2727    print c,p 
    2828     
    29 mmp_cliassifer = Orange.multilabel.MMPLearner(data,k=1) 
     29mmp_cliassifer = Orange.multilabel.MMPLearner(data) 
    3030for e in data: 
    3131    c,p = mmp_cliassifer(e,Orange.classification.Classifier.GetBoth) 
Note: See TracChangeset for help on using the changeset viewer.