From dc13fd25e0596edfc5e72e44b3d1579e08724ed9 Mon Sep 17 00:00:00 2001 From: Pravar Mahajan Date: Fri, 7 Jul 2017 16:35:18 -0400 Subject: [PATCH 1/3] deprecating size_threshold in manhattan_distances --- sklearn/metrics/pairwise.py | 7 ++++++- sklearn/metrics/tests/test_pairwise.py | 9 +++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sklearn/metrics/pairwise.py b/sklearn/metrics/pairwise.py index 0b63653672f51..422558514ce48 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 @@ -465,7 +466,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 @@ -518,6 +519,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 ' + 'and it will be removed in the future ' + 'versions 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..89012edfb7fc2 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 From de451cb52f00274d49e2a7b7444fdab7cf9081f8 Mon Sep 17 00:00:00 2001 From: Pravar Mahajan Date: Fri, 7 Jul 2017 16:55:32 -0400 Subject: [PATCH 2/3] fixing a minor pep8 error --- sklearn/metrics/tests/test_pairwise.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/metrics/tests/test_pairwise.py b/sklearn/metrics/tests/test_pairwise.py index 89012edfb7fc2..242523034e7af 100644 --- a/sklearn/metrics/tests/test_pairwise.py +++ b/sklearn/metrics/tests/test_pairwise.py @@ -75,7 +75,7 @@ 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) - #Using size_threshold argument should raise + # Using size_threshold argument should raise # a deprecation warning assert_warns(DeprecationWarning, manhattan_distances, X, Y, size_threshold=10) From 49a49f16960cf2e27e3ecbd44cb4552654c92d73 Mon Sep 17 00:00:00 2001 From: Pravar Mahajan Date: Thu, 13 Jul 2017 12:21:22 -0400 Subject: [PATCH 3/3] version number for deprecation --- sklearn/metrics/pairwise.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sklearn/metrics/pairwise.py b/sklearn/metrics/pairwise.py index 8e38b7704abfe..0fa3ad793524a 100644 --- a/sklearn/metrics/pairwise.py +++ b/sklearn/metrics/pairwise.py @@ -523,8 +523,8 @@ def manhattan_distances(X, Y=None, sum_over_features=True, """ if size_threshold is not None: warnings.warn('Use of the "size_threshold" is deprecated ' - 'and it will be removed in the future ' - 'versions of scikit learn.', DeprecationWarning) + '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):