1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
from Orange.base import Learner, Model, SklLearner, SklModel
__all__ = ["LearnerClassification", "ModelClassification",
"SklModelClassification", "SklLearnerClassification"]
class LearnerClassification(Learner):
def incompatibility_reason(self, domain):
reason = None
if len(domain.class_vars) > 1 and not self.supports_multiclass:
reason = "Too many target variables."
elif not domain.has_discrete_class:
reason = "Categorical class variable expected."
return reason
class ModelClassification(Model):
def predict_proba(self, data):
return self(data, ret=Model.Probs)
class SklModelClassification(SklModel, ModelClassification):
pass
class SklLearnerClassification(SklLearner, LearnerClassification):
__returns__ = SklModelClassification
|