diff --git a/sklearn/metrics/pairwise.py b/sklearn/metrics/pairwise.py index 4e82328f6fc53..0fa3ad793524a 100644 --- a/sklearn/metrics/pairwise.py +++ b/sklearn/metrics/pairwise.py @@ -11,6 +11,7 @@ import itertools from functools import partial +import warnings import numpy as np from scipy.spatial import distance @@ -467,7 +468,7 @@ def pairwise_distances_argmin(X, Y, axis=1, metric="euclidean", def manhattan_distances(X, Y=None, sum_over_features=True, - size_threshold=5e8): + size_threshold=None): """ Compute the L1 distances between the vectors in X and Y. With sum_over_features equal to False it returns the componentwise @@ -520,6 +521,10 @@ def manhattan_distances(X, Y=None, sum_over_features=True, array([[ 1., 1.], [ 1., 1.]]...) """ + if size_threshold is not None: + warnings.warn('Use of the "size_threshold" is deprecated ' + 'in 0.19 and it will be removed version ' + '0.21 of scikit-learn', DeprecationWarning) X, Y = check_pairwise_arrays(X, Y) if issparse(X) or issparse(Y): diff --git a/sklearn/metrics/tests/test_pairwise.py b/sklearn/metrics/tests/test_pairwise.py index d8b64b58ca481..242523034e7af 100644 --- a/sklearn/metrics/tests/test_pairwise.py +++ b/sklearn/metrics/tests/test_pairwise.py @@ -12,6 +12,7 @@ from sklearn.utils.testing import assert_raises from sklearn.utils.testing import assert_raises_regexp from sklearn.utils.testing import assert_true +from sklearn.utils.testing import assert_warns from sklearn.utils.testing import ignore_warnings from sklearn.externals.six import iteritems @@ -74,10 +75,10 @@ def test_pairwise_distances(): assert_equal(S.shape[0], X.shape[0]) assert_equal(S.shape[1], Y.shape[0]) assert_array_almost_equal(S, S2) - # Low-level function for manhattan can divide in blocks to avoid - # using too much memory during the broadcasting - S3 = manhattan_distances(X, Y, size_threshold=10) - assert_array_almost_equal(S, S3) + # Using size_threshold argument should raise + # a deprecation warning + assert_warns(DeprecationWarning, + manhattan_distances, X, Y, size_threshold=10) # Test cosine as a string metric versus cosine callable # The string "cosine" uses sklearn.metric, # while the function cosine is scipy.spatial