Changeset 10759:ab8466dd3ef1 in orange


Ignore:
Timestamp:
04/05/12 11:42:47 (2 years ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Check for all missing values in input data, check class var for boosting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeWidgets/Classify/OWEnsemble.py

    r9671 r10759  
    3636        self.loadSettings() 
    3737         
    38         box = OWGUI.radioButtonsInBox(self.controlArea, self, "method", [name for name, _ in self.METHODS], box="Ensemble", callback=self.onChange) 
     38        box = OWGUI.radioButtonsInBox(self.controlArea, self, "method", 
     39                                      [name for name, _ in self.METHODS],  
     40                                      box="Ensemble", 
     41                                      callback=self.onChange) 
     42         
    3943        i_box = OWGUI.indentedBox(box, sep=OWGUI.checkButtonOffsetHint(box.buttons[0])) 
    4044         
     
    5256         
    5357    def setData(self, data): 
     58        if not self.isDataWithClass(data, checkMissing=True): 
     59             data = None 
    5460        self.data = data 
    5561         
    5662    def handleNewSignals(self): 
     63        self.checkMethod() 
    5764        self.commit() 
    5865         
    5966    def onChange(self): 
    60         pass 
     67        self.checkMethod() 
     68     
     69    def checkMethod(self): 
     70        self.warning(0) 
     71        if self.data is not None: 
     72            class_var = self.data.domain.class_var 
     73            if self.method == 0 and not \ 
     74                    isinstance(class_var, orange.EnumVariable): 
     75                self.warning(0, "Cannot use 'Boosting' on non discrete class") 
     76                return False 
     77        return True 
    6178     
    6279    def commit(self): 
    6380        wrapped = None 
     81        classifier = None 
    6482        if self.learner: 
    6583            wrapped = self.METHODS[self.method][1](self.learner, t=self.t) 
    66             self.send("Learner", wrapped) 
     84        self.send("Learner", wrapped) 
    6785             
    68         if self.data and wrapped: 
     86        if self.data and wrapped and self.checkMethod(): 
    6987            classifier = wrapped(self.data) 
    70             self.send("Classifier", classifier) 
     88        self.send("Classifier", classifier) 
    7189             
    7290if __name__ == "__main__": 
Note: See TracChangeset for help on using the changeset viewer.