Changeset 3616:00841f958eeb in orange


Ignore:
Timestamp:
04/30/07 17:44:43 (7 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Convert:
d3561151031d8b11287342205d84c5bf7c83577b
Message:
  • fixed problems with class treatment
Location:
orange/OrangeWidgets/Data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orange/OrangeWidgets/Data/OWContinuize.py

    r3481 r3616  
    121121            conzer.continuousTreatment = self.continuousTreatment 
    122122            conzer.multinomialTreatment = self.multinomialTreats[self.multinomialTreatment][1] 
    123             if self.classTreatment == 3 and self.data.domain.classVar and self.data.domain.classVar.varType == orange.VarTypes.Discrete: 
     123            classVar = self.data.domain.classVar 
     124            if self.classTreatment == 3 and classVar and classVar.varType == orange.VarTypes.Discrete and len(classVar.values) >= 2: 
    124125                domain = conzer(self.data, 0, self.targetValue) 
    125126            else: 
    126                 conzer.classTreatment = self.classTreats[self.classTreatment][1] 
     127                if classVar and (classVar.varType != orange.VarTypes.Discrete or len(classVar.values) >= 2): 
     128                    conzer.classTreatment = self.classTreats[self.classTreatment][1] 
     129                else: 
     130                    conzer.classTreatment = orange.DomainContinuizer.Ignore 
    127131                domain = conzer(self.data) 
    128132            self.send("Examples", orange.ExampleTable(domain, self.data)) 
  • orange/OrangeWidgets/Data/OWDiscretize.py

    r3481 r3616  
    579579        self.data = self.originalData 
    580580        if continuousClass: 
    581             self.discretizeClass() 
     581            if not self.discretizeClass(): 
     582                self.data = self.discClassData = None 
     583                self.warning(0) 
     584                self.error(0, "Cannot discretize the class") 
    582585        else: 
    583586            self.data = self.originalData 
     
    607610            self.graph.setData(None, self.data) 
    608611            self.openContext("", data) 
    609             if self.classDiscretization == 2: 
    610                 self.discretizeClass() 
     612#            if self.classDiscretization == 2: 
     613#                self.discretizeClass() 
    611614 
    612615            # Prevent entropy discretization with non-discrete class 
     
    957960                self.error(0) 
    958961                self.warning(0) 
     962                return True 
    959963            except: 
    960964                if self.data: 
     
    963967                    self.error(0, "Cannot discretize the class") 
    964968                self.classIntervalsLabel.setText("") 
     969                return False 
    965970 
    966971 
     
    10501055            newdata = orange.ExampleTable(newdomain, self.originalData) 
    10511056            self.send("Examples", newdata) 
    1052         elif self.discClassData: 
     1057 
     1058        elif self.discClassData and self.outputOriginalClass: 
    10531059            self.send("Examples", self.discClassData) 
    1054         elif self.originalData:  # no continuous attributes... 
     1060             
     1061        elif self.originalData and not (self.originalData.domain.classVar and self.originalData.domain.classVar.varType == orange.VarTypes.Continuous and not self.discClassData):  # no continuous attributes... 
    10551062            self.send("Examples", self.originalData) 
    10561063        else: 
Note: See TracChangeset for help on using the changeset viewer.