From b2eace8555403adf4a10630f3c66a31ea974c897 Mon Sep 17 00:00:00 2001 From: pedrobslima Date: Sun, 14 Dec 2025 14:19:03 -0300 Subject: [PATCH] Compatibility with sklearn 1.7: Update data validation function during fit Models couldn't be trained because BaseEstimator._validate_data() is deprecated since sklearn version 1.7, and needed to be switched to sklearn.utils.validation.validate_data() --- deslib/base.py | 5 +++-- deslib/static/oracle.py | 5 +++-- deslib/static/single_best.py | 5 +++-- deslib/static/stacked.py | 5 +++-- deslib/static/static_selection.py | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/deslib/base.py b/deslib/base.py index c3f1841..5091eea 100644 --- a/deslib/base.py +++ b/deslib/base.py @@ -18,7 +18,7 @@ from sklearn.neighbors import KNeighborsClassifier from sklearn.preprocessing import LabelEncoder, normalize from sklearn.utils.validation import (check_X_y, check_is_fitted, check_array, - check_random_state) + check_random_state, validate_data) from deslib.util import KNNE from deslib.util import faiss_knn_wrapper @@ -83,7 +83,8 @@ class labels of each example in X. self """ self.random_state_ = check_random_state(self.random_state) - X, y = self._validate_data( + X, y = validate_data( + self, X, y, accept_sparse="csr", diff --git a/deslib/static/oracle.py b/deslib/static/oracle.py index d1d7662..b213d4d 100644 --- a/deslib/static/oracle.py +++ b/deslib/static/oracle.py @@ -5,7 +5,7 @@ # License: BSD 3 clause import numpy as np -from sklearn.utils.validation import check_X_y, check_array +from sklearn.utils.validation import check_X_y, check_array, validate_data from deslib.static.base import BaseStaticEnsemble @@ -68,7 +68,8 @@ class labels of each example in X. self : object Returns self. """ - X, y = self._validate_data( + X, y = validate_data( + self, X, y, accept_sparse="csr", diff --git a/deslib/static/single_best.py b/deslib/static/single_best.py index 6edb5c1..6f2ad35 100644 --- a/deslib/static/single_best.py +++ b/deslib/static/single_best.py @@ -6,7 +6,7 @@ import numpy as np from sklearn.metrics import check_scoring -from sklearn.utils.validation import check_X_y, check_is_fitted, check_array +from sklearn.utils.validation import check_X_y, check_is_fitted, check_array, validate_data from .base import BaseStaticEnsemble @@ -74,7 +74,8 @@ def fit(self, X, y): class labels of each example in X. """ - X, y = self._validate_data( + X, y = validate_data( + self, X, y, accept_sparse="csr", diff --git a/deslib/static/stacked.py b/deslib/static/stacked.py index f24b22e..23e6686 100644 --- a/deslib/static/stacked.py +++ b/deslib/static/stacked.py @@ -1,6 +1,6 @@ import numpy as np from sklearn.linear_model import LogisticRegression -from sklearn.utils.validation import check_X_y, check_array, check_is_fitted +from sklearn.utils.validation import check_X_y, check_array, check_is_fitted, validate_data from deslib.static.base import BaseStaticEnsemble @@ -70,7 +70,8 @@ def fit(self, X, y): class labels of each example in X. """ - X, y = self._validate_data( + X, y = validate_data( + self, X, y, accept_sparse="csr", diff --git a/deslib/static/static_selection.py b/deslib/static/static_selection.py index cc0ef95..44b7889 100644 --- a/deslib/static/static_selection.py +++ b/deslib/static/static_selection.py @@ -6,7 +6,7 @@ import numpy as np from sklearn.metrics import check_scoring -from sklearn.utils.validation import check_is_fitted, check_X_y, check_array +from sklearn.utils.validation import check_is_fitted, check_X_y, check_array, validate_data from deslib.util.aggregation import majority_voting_rule from deslib.util.aggregation import predict_proba_ensemble @@ -86,7 +86,8 @@ class labels of each example in X. self : object Returns self. """ - X, y = self._validate_data( + X, y = validate_data( + self, X, y, accept_sparse="csr",