Skip to content

Commit d7d5503

Browse files
committed
MAINT replace deprecated scipy distance_matrix with cdist
scipy 1.18 deprecates scipy.spatial.distance_matrix in favor of scipy.spatial.distance.cdist (removal scheduled for scipy 1.20), which currently raises a DeprecationWarning (and fails the SMOTEN tests that treat warnings as errors). Switch ValueDifferenceMetric to cdist with the Minkowski metric; the computed distances are identical.
1 parent 8504e95 commit d7d5503

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

doc/whats_new/v0.15.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,12 @@ Enhancements
1717
Compatibility
1818
.............
1919

20+
- Replace the deprecated ``scipy.spatial.distance_matrix`` with
21+
``scipy.spatial.distance.cdist`` (Minkowski metric) in
22+
:class:`~imblearn.metrics.pairwise.ValueDifferenceMetric`. This silences a
23+
``DeprecationWarning`` under SciPy 1.18 (the function is scheduled for
24+
removal in SciPy 1.20); the computed distances are unchanged.
25+
:pr:`1188` by :user:`chaoz23`.
26+
2027
Deprecations
2128
............

imblearn/metrics/pairwise.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import numbers
77

88
import numpy as np
9-
from scipy.spatial import distance_matrix
9+
from scipy.spatial.distance import cdist
1010
from sklearn.base import BaseEstimator
1111
from sklearn.utils import check_consistent_length
1212
from sklearn.utils._param_validation import StrOptions
@@ -227,7 +227,8 @@ def pairwise(self, X, Y=None):
227227
else:
228228
proba_feature_Y = proba_feature_X
229229
distance += (
230-
distance_matrix(proba_feature_X, proba_feature_Y, p=self.k) ** self.r
230+
cdist(proba_feature_X, proba_feature_Y, metric="minkowski", p=self.k)
231+
** self.r
231232
)
232233
return distance
233234

0 commit comments

Comments
 (0)