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

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

Made XPM version of the icon 32x32.

Line 
1import orange
2import orngRegression
3
4
5class MultiClassPredictionLearner(object):
6    def __new__(self, data=None, name='PLS regression', **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='MultiClassPredictionLearner', baseLearner=orngRegression.PLSRegressionLearner):
15        self.name = name
16        self.baseLearner = baseLearner
17               
18    def __call__(self, data, y, x=None, nc=None, weight=None):
19        if x == None:
20            x = [v for v in data.domain.variables if v not in y]
21
22        if self.baseLearner == orngRegression.PLSRegressionLearner:
23            lr = self.baseLearner()
24            return MultiClassPrediction(baseClassifier=lr(data, y, x, nc), baseLearner=self.baseLearner)
25
26        if self.baseLearner == orange.SVMLearner:
27            dom = orange.Domain(x)
28            lr = self.baseLearner()
29            lr.svm_type=orange.SVMLearner.NU_SVR
30            models = []
31            for a in y:
32                newDomain = orange.Domain(dom, a)
33                newData = orange.ExampleTable(newDomain, data)
34                models.append(lr(newData))
35            return MultiClassPrediction(baseClassifier=models, baseLearner = self.baseLearner)
36
37         
38class MultiClassPrediction:
39    def __init__(self, **kwds):
40        self.__dict__.update(kwds)
41
42    def __call__(self, example):
43        if self.baseLearner == orngRegression.PLSRegressionLearner:
44            print 'lalala'
45            return self.baseClassifier(example)
46        elif self.baseLearner == orange.SVMLearner:
47            yhat = []
48            for cl in self.baseClassifier:
49                yhat.append(cl(example))
50            print yhat
51       
52
53
54
55
56
Note: See TracBrowser for help on using the repository browser.