def __call__(self, examples, weight=0): imputer = getattr(self, "imputer", None) or None if getattr(self, "removeMissing", 0): examples = orange.Preprocessor_dropMissing(examples) ## if hasDiscreteValues(examples.domain): ## examples = createNoDiscTable(examples) if not len(examples): return None if getattr(self, "stepwiseLR", 0): addCrit = getattr(self, "addCrit", 0.2) removeCrit = getattr(self, "removeCrit", 0.3) numAttr = getattr(self, "numAttr", -1) attributes = StepWiseFSS(examples, addCrit=addCrit, deleteCrit=removeCrit, imputer=imputer, numAttr=numAttr) tmpDomain = orange.Domain(attributes, examples.domain.classVar) tmpDomain.addmetas(examples.domain.getmetas()) examples = examples.select(tmpDomain) learner = orange.LogRegLearner() learner.imputerConstructor = imputer if imputer: examples = self.imputer(examples)(examples) examples = orange.Preprocessor_dropMissing(examples) if self.fitter: learner.fitter = self.fitter if self.removeSingular: lr = learner.fitModel(examples, weight) else: lr = learner(examples, weight) while isinstance(lr, orange.Variable): if isinstance(lr.getValueFrom, orange.ClassifierFromVar) and isinstance( lr.getValueFrom.transformer, orange.Discrete2Continuous): lr = lr.getValueFrom.variable attributes = examples.domain.attributes[:] if lr in attributes: attributes.remove(lr) else: attributes.remove(lr.getValueFrom.variable) newDomain = orange.Domain(attributes, examples.domain.classVar) newDomain.addmetas(examples.domain.getmetas()) examples = examples.select(newDomain) lr = learner.fitModel(examples, weight) return lr
def logreg(input_dict): import orange output_dict = {} output_dict['logregout'] = orange.LogRegLearner( name="Logistic Regression (Orange)") return output_dict