source: orange/orange/orngMultivariatePrediction.py @ 6538:a5f65d7f0b2c

Revision 6538:a5f65d7f0b2c, 1.4 KB checked in by Mitar <Mitar@…>, 4 years ago (diff)

Made XPM version of the icon 32x32.

Line 
1import orange
2import orngRegression
3
4class MultiClassPredictionLearner(object):
5    """(self, data, y, x=None)"""
6    def __new__(self, data=None, name='multivar pred', **kwds):
7        learner = object.__new__(self, **kwds)
8        if data:
9            learner.__init__(name) # force init
10            return learner(data)
11        else:
12            return learner  # invokes the __init__
13
14    def __init__(self, name='multivar pred', baseLearner=orngRegression.LinearRegressionLearner):
15        self.name = name
16        self.baseLearner = baseLearner
17               
18    def __call__(self, data, y, x=None, weight=None):
19        if y == None:
20            try:
21                y = [data.domain.classVar]
22            except:
23                import warnings
24                warnings.warn("multi-class learner requires either specification of response variables or a data domain with a class")
25                return None
26        if x == None:
27            print y
28            x = [v for v in data.domain.variables if v not in y]
29
30        models = []
31        for a in y:
32            newDomain = orange.Domain(x, a)
33            newData = orange.ExampleTable(newDomain, data)
34            models.append(baseLearner(newData))
35        return MultiClassPrediction(x=x, y=y, models=models)
36       
37class MultiClassPrediction:
38    def __init__(self, **kwds):
39        self.__dict__.update(kwds)
40
41    def __call__(self, example):
42        return [m(example) for m in self.models]
Note: See TracBrowser for help on using the repository browser.