diff --git a/imblearn/metrics/pairwise.py b/imblearn/metrics/pairwise.py index 46bf52df1..2fa784fa2 100644 --- a/imblearn/metrics/pairwise.py +++ b/imblearn/metrics/pairwise.py @@ -205,3 +205,8 @@ def pairwise(self, X, Y=None): distance_matrix(proba_feature_X, proba_feature_Y, p=self.k) ** self.r ) return distance + + def _more_tags(self): + return { + "requires_positive_X": True, # X should be encoded with OrdinalEncoder + } diff --git a/imblearn/tests/test_docstring_parameters.py b/imblearn/tests/test_docstring_parameters.py index acc06c8b2..2636b4070 100644 --- a/imblearn/tests/test_docstring_parameters.py +++ b/imblearn/tests/test_docstring_parameters.py @@ -17,12 +17,20 @@ from sklearn.utils._testing import _get_func_name from sklearn.utils._testing import ignore_warnings from sklearn.utils.estimator_checks import _enforce_estimator_tags_y -from sklearn.utils.estimator_checks import _enforce_estimator_tags_x + +try: + from sklearn.utils.estimator_checks import _enforce_estimator_tags_x +except ImportError: + # scikit-learn >= 1.2 + from sklearn.utils.estimator_checks import ( + _enforce_estimator_tags_X as _enforce_estimator_tags_x, + ) from sklearn.utils.estimator_checks import _construct_instance from sklearn.utils.deprecation import _is_deprecated import imblearn from imblearn.base import is_sampler +from imblearn.utils.estimator_checks import _set_checking_parameters from imblearn.utils.testing import all_estimators @@ -183,6 +191,7 @@ def test_fit_docstring_attributes(name, Estimator): est = _construct_compose_pipeline_instance(Estimator) else: est = _construct_instance(Estimator) + _set_checking_parameters(est) X, y = make_classification( n_samples=20, diff --git a/imblearn/utils/estimator_checks.py b/imblearn/utils/estimator_checks.py index 086de2e74..532d227a9 100644 --- a/imblearn/utils/estimator_checks.py +++ b/imblearn/utils/estimator_checks.py @@ -45,7 +45,7 @@ def _set_checking_parameters(estimator): if name == "ClusterCentroids": estimator.set_params( voting="soft", - estimator=KMeans(random_state=0, algorithm="full", n_init=1), + estimator=KMeans(random_state=0, algorithm="lloyd", n_init=1), ) if name == "KMeansSMOTE": estimator.set_params(kmeans_estimator=12)