Skip to content

Commit 11275ba

Browse files
Allow external preprocessors
1 parent d40dfed commit 11275ba

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

Orange/widgets/model/owsvm.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,12 @@ class OWSVM(OWBaseLearner):
3131
pps = SklLearner.preprocessors
3232
scaling = [Scale(center=Scale.NoCentering)]
3333

34+
def __init__(self):
35+
super().__init__(SklLearner.preprocessors)
36+
3437
class Outputs(OWBaseLearner.Outputs):
3538
support_vectors = Output("Support vectors", Table, explicit=True)
3639

37-
3840
#: Different types of SVMs
3941
SVM, Nu_SVM = range(2)
4042
#: SVM type
@@ -71,6 +73,13 @@ class Outputs(OWBaseLearner.Outputs):
7173
("RBF", "exp(-g|x-y|²)"),
7274
("Sigmoid", "tanh(g x⋅y + c)"))
7375

76+
def set_preprocessor(self, preprocessor):
77+
if preprocessor is None:
78+
self.preprocessors = self.pps
79+
else:
80+
self.preprocessors = preprocessor
81+
self.apply()
82+
7483
def add_main_layout(self):
7584
self._add_type_box()
7685
self._add_kernel_box()
@@ -222,7 +231,7 @@ def create_learner(self):
222231
'probability': True,
223232
'tol': self.tol,
224233
'max_iter': self.max_iter if self.limit_iter else -1,
225-
'preprocessors': self.pps + self.scaling if self.scale_data else self.pps
234+
'preprocessors': self.preprocessors + self.scaling if self.scale_data else self.preprocessors
226235
}
227236
if self.svm_type == self.SVM:
228237
return SVMLearner(C=self.C, epsilon=self.epsilon, **common_args)

Orange/widgets/utils/owlearnerwidget.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,15 @@ class Outputs:
9090

9191
OUTPUT_MODEL_NAME = Outputs.model.name # Attr for backcompat w/ self.send() code
9292

93-
def __init__(self):
93+
def __init__(self, preprocessors=None):
9494
super().__init__()
9595
self.data = None
9696
self.valid_data = False
9797
self.learner = None
9898
if self.learner_name is None:
9999
self.learner_name = self.name
100100
self.model = None
101-
self.preprocessors = None
101+
self.preprocessors = preprocessors
102102
self.outdated_settings = False
103103

104104
self.setup_layout()

0 commit comments

Comments
 (0)