Skip to content

Commit d46e838

Browse files
authored
Merge pull request #7118 from markotoplak/deprecation-adaboost
SklAdaBoostClassificationLearner: deprecate `algorithm`
2 parents 9ec84ff + 2559efe commit d46e838

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

Orange/ensembles/ada_boost.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import warnings
2+
13
import sklearn.ensemble as skl_ensemble
24

35
from Orange.base import SklLearner
@@ -7,6 +9,7 @@
79
from Orange.regression.base_regression import (
810
SklLearnerRegression, SklModelRegression
911
)
12+
from Orange.util import OrangeDeprecationWarning
1013

1114

1215
__all__ = ['SklAdaBoostClassificationLearner', 'SklAdaBoostRegressionLearner']
@@ -22,7 +25,12 @@ class SklAdaBoostClassificationLearner(SklLearnerClassification):
2225
supports_weights = True
2326

2427
def __init__(self, estimator=None, n_estimators=50, learning_rate=1.,
25-
algorithm='SAMME', random_state=None, preprocessors=None):
28+
algorithm='deprecated', random_state=None, preprocessors=None):
29+
if algorithm != "deprecated":
30+
warnings.warn(
31+
"`algorithm` is deprecated and has no effect (to be removed in 3.42).",
32+
OrangeDeprecationWarning, stacklevel=2)
33+
del algorithm
2634
from Orange.modelling import Fitter
2735
# If fitter, get the appropriate Learner instance
2836
if isinstance(estimator, Fitter):

Orange/tests/test_ada_boost.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import unittest
55

66
import numpy as np
7+
from packaging.version import Version
8+
9+
import Orange
710

811
from Orange.data import Table
912
from Orange.classification import SklTreeLearner
@@ -13,6 +16,7 @@
1316
SklAdaBoostRegressionLearner,
1417
)
1518
from Orange.evaluation import CrossValidation, CA, RMSE
19+
from Orange.util import OrangeDeprecationWarning
1620

1721

1822
class TestSklAdaBoostLearner(unittest.TestCase):
@@ -105,3 +109,13 @@ def test_predict_numpy_reg(self):
105109
def test_adaboost_adequacy_reg(self):
106110
learner = SklAdaBoostRegressionLearner()
107111
self.assertRaises(ValueError, learner, self.iris)
112+
113+
def test_remove_deprecation(self):
114+
if (Version(Orange.__version__).is_prerelease
115+
and Version(Orange.__version__) >= Version("3.42")):
116+
self.fail(
117+
"SklAdaBoostClassificationLearner: `algorithm` was deprecated in "
118+
"version 3.40. Please remove everything related to it."
119+
)
120+
with self.assertWarns(OrangeDeprecationWarning):
121+
SklAdaBoostClassificationLearner(algorithm="invalid")(self.iris)

i18n/si/msgs.jaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2101,7 +2101,8 @@ ensembles/ada_boost.py:
21012101
SklAdaBoostRegressionLearner: false
21022102
class `SklAdaBoostClassificationLearner`:
21032103
def `__init__`:
2104-
SAMME: false
2104+
deprecated: false
2105+
`algorithm` is deprecated and has no effect (to be removed in 3.42).: false
21052106
class `SklAdaBoostRegressionLearner`:
21062107
def `__init__`:
21072108
linear: false

0 commit comments

Comments
 (0)