source: orange/Orange/orng/orngMCPrediction.py @ 9878:80400e49d3a4

Revision 9878:80400e49d3a4, 1.8 KB checked in by Matija Polajnar <matija.polajnar@…>, 2 years ago (diff)

Remove arguments from object.new calls. It gives a deprecation warning and has no effects: the arguments get passed anyway.

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)
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.