From f7871b8b353525ddcd6a27d546a656afadae8bf2 Mon Sep 17 00:00:00 2001 From: antoinedemathelin Date: Thu, 25 Jan 2024 14:34:18 +0100 Subject: [PATCH 1/2] fix LogisticReg --- adapt/instance_based/_iwc.py | 2 +- tests/test_regular.py | 8 ++++---- tests/test_tradaboost.py | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/adapt/instance_based/_iwc.py b/adapt/instance_based/_iwc.py index 6278d77..0b0e14f 100644 --- a/adapt/instance_based/_iwc.py +++ b/adapt/instance_based/_iwc.py @@ -124,7 +124,7 @@ def fit_weights(self, Xs, Xt, warm_start=False, **kwargs): if (not warm_start) or (not hasattr(self, "classifier_")): if self.classifier is None: - self.classifier_ = LogisticRegression(penalty="none") + self.classifier_ = LogisticRegression() else: self.classifier_ = check_estimator(self.classifier, copy=True, diff --git a/tests/test_regular.py b/tests/test_regular.py index a8f4538..32ad2a2 100644 --- a/tests/test_regular.py +++ b/tests/test_regular.py @@ -56,7 +56,7 @@ def test_setup(): lr.fit(Xs, ys_reg) assert np.abs(lr.coef_[0][0] - 10) < 1 - lr = LogisticRegression(penalty='none', solver='lbfgs') + lr = LogisticRegression(penalty=None, solver='lbfgs') lr.fit(Xs, ys_classif) assert (lr.predict(Xt) == yt_classif.ravel()).sum() < 70 @@ -116,7 +116,7 @@ def test_regularlr_error(): def test_regularlc_fit(): np.random.seed(0) - lr = LogisticRegression(penalty='none', solver='lbfgs') + lr = LogisticRegression(penalty=None, solver='lbfgs') lr.fit(Xs, ys_classif) model = RegularTransferLC(lr, lambda_=0) model.fit(Xt, yt_classif) @@ -139,7 +139,7 @@ def test_regularlc_multiclass(): y = np.zeros(len(X)) y[X[:, :2].sum(1)<0] = 1 y[X[:, 3:].sum(1)>0] = 2 - lr = LogisticRegression(penalty='none', solver='lbfgs') + lr = LogisticRegression(penalty=None, solver='lbfgs') lr.fit(X, y) model = RegularTransferLC(lr, lambda_=1.) model.fit(X, y) @@ -193,7 +193,7 @@ def test_clone(): new_model.predict(Xs); assert model is not new_model - lr = LogisticRegression(penalty='none', solver='lbfgs') + lr = LogisticRegression(penalty=None, solver='lbfgs') lr.fit(Xs, ys) model = RegularTransferLC(lr, lambda_=1.) model.fit(Xs, ys) diff --git a/tests/test_tradaboost.py b/tests/test_tradaboost.py index 90c904a..2c8623c 100644 --- a/tests/test_tradaboost.py +++ b/tests/test_tradaboost.py @@ -36,7 +36,7 @@ def test_tradaboost_fit(): np.random.seed(0) - model = TrAdaBoost(LogisticRegression(penalty='none', + model = TrAdaBoost(LogisticRegression(penalty=None, solver='lbfgs'), n_estimators=20) model.fit(Xs, ys_classif, Xt=Xt[:10], yt=yt_classif[:10]) @@ -111,7 +111,7 @@ def test_twostagetradaboostr2_fit(): def test_tradaboost_deepcopy(): np.random.seed(0) - model = TrAdaBoost(LogisticRegression(penalty='none', + model = TrAdaBoost(LogisticRegression(penalty=None, solver='lbfgs'), n_estimators=20) model.fit(Xs, ys_classif, Xt=Xt[:10], yt=yt_classif[:10]) @@ -124,7 +124,7 @@ def test_tradaboost_multiclass(): np.random.seed(0) X = np.random.randn(10, 3) y = np.random.choice(3, 10) - model = TrAdaBoost(LogisticRegression(penalty='none', + model = TrAdaBoost(LogisticRegression(penalty=None, solver='lbfgs'), Xt=X, yt=y, n_estimators=20) model.fit(X, y) @@ -177,13 +177,13 @@ def test_tradaboost_above_05(): def test_tradaboost_lr(): np.random.seed(0) - model = TrAdaBoost(LogisticRegression(penalty='none'), + model = TrAdaBoost(LogisticRegression(penalty=None), Xt=Xt[:10], yt=yt_classif[:10], n_estimators=20, lr=.1) model.fit(Xs, ys_classif) err1 = model.estimator_errors_ - model = TrAdaBoost(LogisticRegression(penalty='none'), + model = TrAdaBoost(LogisticRegression(penalty=None), Xt=Xt[:10], yt=yt_classif[:10], n_estimators=20, lr=2.) model.fit(Xs, ys_classif) From 4befc04d9ec35a9af5ad683a04fab3a3ce296de9 Mon Sep 17 00:00:00 2001 From: antoinedemathelin Date: Thu, 25 Jan 2024 16:53:18 +0100 Subject: [PATCH 2/2] fix OneHot --- adapt/instance_based/_tradaboost.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/adapt/instance_based/_tradaboost.py b/adapt/instance_based/_tradaboost.py index 4a869f2..bb5d05c 100644 --- a/adapt/instance_based/_tradaboost.py +++ b/adapt/instance_based/_tradaboost.py @@ -320,7 +320,10 @@ def _boost(self, iboost, Xs, ys, Xt, yt, if not isinstance(self, TrAdaBoostR2): if isinstance(estimator, BaseEstimator): - ohe = OneHotEncoder(sparse=False) + try: + ohe = OneHotEncoder(sparse=False) + except: + ohe = OneHotEncoder(sparse_output=False) ohe.fit(y.reshape(-1, 1)) ys = ohe.transform(ys) yt = ohe.transform(yt)