From 05887e47fa93b2010701a5d57aff236d81f586ec Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 07:23:45 +0530 Subject: [PATCH 01/17] Depreciation warning for n_components in sklearn/cluster/hierarchical.py --- sklearn/cluster/hierarchical.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index 2195fe8ee3d85..28bf39d2a535c 100644 --- a/sklearn/cluster/hierarchical.py +++ b/sklearn/cluster/hierarchical.py @@ -365,6 +365,11 @@ def linkage_tree(X, connectivity=None, n_components=None, -------- ward_tree : hierarchical clustering with ward linkage """ + if n_components is not None: + warnings.warn("n_components was depreciated in 0.18" + "will be removed in 0.21", DeprecationWarning) + + X = np.asarray(X) if X.ndim == 1: X = np.reshape(X, (-1, 1)) From 6ba0553ef3a4b3c75e81ec1a086f9e8802d8f622 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 07:35:03 +0530 Subject: [PATCH 02/17] typo fix --- sklearn/cluster/hierarchical.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index 28bf39d2a535c..817ce22437124 100644 --- a/sklearn/cluster/hierarchical.py +++ b/sklearn/cluster/hierarchical.py @@ -366,7 +366,7 @@ def linkage_tree(X, connectivity=None, n_components=None, ward_tree : hierarchical clustering with ward linkage """ if n_components is not None: - warnings.warn("n_components was depreciated in 0.18" + warnings.warn("n_components was deprecated in 0.18" "will be removed in 0.21", DeprecationWarning) From ecbe994c38d8e4364ebd48e6cbfe6752d6882876 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 08:05:56 +0530 Subject: [PATCH 03/17] Whitespace fix --- sklearn/cluster/hierarchical.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index 817ce22437124..a69e5ff389740 100644 --- a/sklearn/cluster/hierarchical.py +++ b/sklearn/cluster/hierarchical.py @@ -369,7 +369,6 @@ def linkage_tree(X, connectivity=None, n_components=None, warnings.warn("n_components was deprecated in 0.18" "will be removed in 0.21", DeprecationWarning) - X = np.asarray(X) if X.ndim == 1: X = np.reshape(X, (-1, 1)) From 3a0af3110d1dc6bb31408093d0bb98be4f14f6de Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 08:27:50 +0530 Subject: [PATCH 04/17] Update hierarchical.py --- sklearn/cluster/hierarchical.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index a69e5ff389740..ddf9e8d3bba99 100644 --- a/sklearn/cluster/hierarchical.py +++ b/sklearn/cluster/hierarchical.py @@ -368,7 +368,7 @@ def linkage_tree(X, connectivity=None, n_components=None, if n_components is not None: warnings.warn("n_components was deprecated in 0.18" "will be removed in 0.21", DeprecationWarning) - + X = np.asarray(X) if X.ndim == 1: X = np.reshape(X, (-1, 1)) From 9351173aa9ce8b5b6d64e5ed4097df891892f24d Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 10:21:32 +0530 Subject: [PATCH 05/17] Added test --- sklearn/cluster/tests/test_hierarchical.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 986b92e0ce9f4..840088efa1429 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -44,6 +44,16 @@ def test_linkage_misc(): assert_raises(ValueError, linkage_tree, X, linkage='foo') assert_raises(ValueError, linkage_tree, X, connectivity=np.ones((4, 4))) + # Test for warning of deprecation of n_components in linkage_tree + rng = np.random.RandomState(0) + X = rng.randn(50, 100) + for tree_builder in _TREE_BUILDERS.values(): + for this_X in (X, X[0]): + with ignore_warnings(): + children, n_nodes, n_leaves, parent = assert_warns( + UserWarning, tree_builder, this_X.T, n_components=10) + + # Smoke test FeatureAgglomeration FeatureAgglomeration().fit(X) From 602fcaab25b48ff7ab6303326196f1297752191a Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 10:44:59 +0530 Subject: [PATCH 06/17] Added test-v2 --- sklearn/cluster/tests/test_hierarchical.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 840088efa1429..0518213b6e6ef 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -45,15 +45,8 @@ def test_linkage_misc(): assert_raises(ValueError, linkage_tree, X, connectivity=np.ones((4, 4))) # Test for warning of deprecation of n_components in linkage_tree - rng = np.random.RandomState(0) - X = rng.randn(50, 100) - for tree_builder in _TREE_BUILDERS.values(): - for this_X in (X, X[0]): - with ignore_warnings(): - children, n_nodes, n_leaves, parent = assert_warns( - UserWarning, tree_builder, this_X.T, n_components=10) - - + children, n_nodes, n_leaves, parent = assert_warns(UserWarning, linkage_tree, n_components=10) + # Smoke test FeatureAgglomeration FeatureAgglomeration().fit(X) From 69ad9393297662f2f9278de2a27241aeff795ada Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 12:54:33 +0530 Subject: [PATCH 07/17] Test for deprecation --- sklearn/cluster/tests/test_hierarchical.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 0518213b6e6ef..8bd20eecb8582 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -35,6 +35,20 @@ from sklearn.utils.testing import assert_array_equal from sklearn.utils.testing import assert_warns +def test_deprecation_of_linkage_tree(): + + for tree_builder in _TREE_BUILDERS.values(): + for this_X in (X, X[0]): + with ignore_warnings(): + # Test for warning of deprecation of n_components in linkage_tree + children, n_nodes, n_leaves, parent = assert_warns(DeprecationWarning, linkage_tree,this_X.T, n_components=10) + children1, n_nodes1, n_leaves1, parent1 = linkage_tree(this_X.T, n_components=10) + children2, n_nodes2, n_leaves2, parent2 = linkage_tree(this_X.T) + # Test is to see if n_components is making any difference + assert_array_equal(children1,children2) + assert_equal(n_nodes1,n_nodes2) + assert_equal(n_leaves1,n_leaves2) + assert_equal(parent1,parent2) def test_linkage_misc(): # Misc tests on linkage @@ -44,8 +58,6 @@ def test_linkage_misc(): assert_raises(ValueError, linkage_tree, X, linkage='foo') assert_raises(ValueError, linkage_tree, X, connectivity=np.ones((4, 4))) - # Test for warning of deprecation of n_components in linkage_tree - children, n_nodes, n_leaves, parent = assert_warns(UserWarning, linkage_tree, n_components=10) # Smoke test FeatureAgglomeration FeatureAgglomeration().fit(X) From ab549b87f71cadb2c138f097d07e102224a9ca88 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 13:00:47 +0530 Subject: [PATCH 08/17] Test function name change --- sklearn/cluster/tests/test_hierarchical.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 8bd20eecb8582..6a3c63aeefbc0 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -35,7 +35,7 @@ from sklearn.utils.testing import assert_array_equal from sklearn.utils.testing import assert_warns -def test_deprecation_of_linkage_tree(): +def test_deprecation_of_n_components_in_linkage_tree(): for tree_builder in _TREE_BUILDERS.values(): for this_X in (X, X[0]): From 24f466ef1ff6b2737b01234dcc0ce1de38cf6b44 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 15:34:18 +0530 Subject: [PATCH 09/17] Updated test --- sklearn/cluster/tests/test_hierarchical.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 6a3c63aeefbc0..a1a5049964f16 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -39,16 +39,8 @@ def test_deprecation_of_n_components_in_linkage_tree(): for tree_builder in _TREE_BUILDERS.values(): for this_X in (X, X[0]): - with ignore_warnings(): - # Test for warning of deprecation of n_components in linkage_tree - children, n_nodes, n_leaves, parent = assert_warns(DeprecationWarning, linkage_tree,this_X.T, n_components=10) - children1, n_nodes1, n_leaves1, parent1 = linkage_tree(this_X.T, n_components=10) - children2, n_nodes2, n_leaves2, parent2 = linkage_tree(this_X.T) - # Test is to see if n_components is making any difference - assert_array_equal(children1,children2) - assert_equal(n_nodes1,n_nodes2) - assert_equal(n_leaves1,n_leaves2) - assert_equal(parent1,parent2) + # Test for warning of deprecation of n_components in linkage_tree + children, n_nodes, n_leaves, parent = assert_warns(DeprecationWarning, linkage_tree,this_X.T, n_components=10) def test_linkage_misc(): # Misc tests on linkage From 0dd8c8f682696260c019b5a6518b37349bea1333 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 16:02:14 +0530 Subject: [PATCH 10/17] Update test_hierarchical.py --- sklearn/cluster/tests/test_hierarchical.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index a1a5049964f16..cfc2fac7fc94f 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -36,7 +36,8 @@ from sklearn.utils.testing import assert_warns def test_deprecation_of_n_components_in_linkage_tree(): - + rng = np.random.RandomState(0) + X = rng.randn(50, 100) for tree_builder in _TREE_BUILDERS.values(): for this_X in (X, X[0]): # Test for warning of deprecation of n_components in linkage_tree From 07c4c83e61e7125c2fc678073c917ca3cab73b87 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 16:57:55 +0530 Subject: [PATCH 11/17] fixing flake8 errors --- sklearn/cluster/tests/test_hierarchical.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index cfc2fac7fc94f..48f3e41a74a3e 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -35,13 +35,18 @@ from sklearn.utils.testing import assert_array_equal from sklearn.utils.testing import assert_warns + def test_deprecation_of_n_components_in_linkage_tree(): rng = np.random.RandomState(0) X = rng.randn(50, 100) for tree_builder in _TREE_BUILDERS.values(): for this_X in (X, X[0]): # Test for warning of deprecation of n_components in linkage_tree - children, n_nodes, n_leaves, parent = assert_warns(DeprecationWarning, linkage_tree,this_X.T, n_components=10) + children, n_nodes, n_leaves, parent = assert_warns( + DeprecationWarning, + linkage_tree, + this_X.T, + n_components=10) def test_linkage_misc(): # Misc tests on linkage From bc9f031163c6bd433373134258a0795905768a8d Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 17:25:49 +0530 Subject: [PATCH 12/17] removed blank line --- sklearn/cluster/tests/test_hierarchical.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 48f3e41a74a3e..f9deceb69f5e8 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -56,7 +56,6 @@ def test_linkage_misc(): assert_raises(ValueError, linkage_tree, X, linkage='foo') assert_raises(ValueError, linkage_tree, X, connectivity=np.ones((4, 4))) - # Smoke test FeatureAgglomeration FeatureAgglomeration().fit(X) From c751c6362cb8635113bba2e7c3ed0bff9b765cd9 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Mon, 10 Jul 2017 17:28:24 +0530 Subject: [PATCH 13/17] modifying test --- sklearn/cluster/tests/test_hierarchical.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index f9deceb69f5e8..e903130e1cfe0 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -39,14 +39,12 @@ def test_deprecation_of_n_components_in_linkage_tree(): rng = np.random.RandomState(0) X = rng.randn(50, 100) - for tree_builder in _TREE_BUILDERS.values(): - for this_X in (X, X[0]): - # Test for warning of deprecation of n_components in linkage_tree - children, n_nodes, n_leaves, parent = assert_warns( - DeprecationWarning, - linkage_tree, - this_X.T, - n_components=10) + # Test for warning of deprecation of n_components in linkage_tree + children, n_nodes, n_leaves, parent = assert_warns( + DeprecationWarning, + linkage_tree, + X.T, + n_components=10) def test_linkage_misc(): # Misc tests on linkage From dd2e116f2d62f5f3a5dcb6e2201478ea0ecc4955 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Tue, 11 Jul 2017 05:35:06 +0530 Subject: [PATCH 14/17] Change condition for deprecation warning --- sklearn/cluster/hierarchical.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index ddf9e8d3bba99..08fd9a5a58d21 100644 --- a/sklearn/cluster/hierarchical.py +++ b/sklearn/cluster/hierarchical.py @@ -289,7 +289,7 @@ def ward_tree(X, connectivity=None, n_clusters=None, return_distance=False): # average and complete linkage -def linkage_tree(X, connectivity=None, n_components=None, +def linkage_tree(X, connectivity=None, n_components='deprecated', n_clusters=None, linkage='complete', affinity="euclidean", return_distance=False): """Linkage agglomerative clustering based on a Feature matrix. @@ -365,7 +365,7 @@ def linkage_tree(X, connectivity=None, n_components=None, -------- ward_tree : hierarchical clustering with ward linkage """ - if n_components is not None: + if n_components != 'deprecated': warnings.warn("n_components was deprecated in 0.18" "will be removed in 0.21", DeprecationWarning) From e0293c3ad8e22bc80ac40348efe43b68127f609c Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Tue, 11 Jul 2017 05:40:26 +0530 Subject: [PATCH 15/17] Change indentation and compare function output --- sklearn/cluster/tests/test_hierarchical.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index e903130e1cfe0..66153c5ebde83 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -40,11 +40,11 @@ def test_deprecation_of_n_components_in_linkage_tree(): rng = np.random.RandomState(0) X = rng.randn(50, 100) # Test for warning of deprecation of n_components in linkage_tree - children, n_nodes, n_leaves, parent = assert_warns( - DeprecationWarning, - linkage_tree, - X.T, - n_components=10) + children, n_nodes, n_leaves, parent = assert_warns(DeprecationWarning, + linkage_tree, + X.T, + n_components=10) + assert_array_equal = ([children, n_nodes, n_leaves, parent], linkage_tree(X.T)) def test_linkage_misc(): # Misc tests on linkage From 59dd8fe4dfc72ef391d6da75a6e58d450658fefc Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Tue, 11 Jul 2017 06:22:50 +0530 Subject: [PATCH 16/17] fix flake8 errors --- sklearn/cluster/tests/test_hierarchical.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 66153c5ebde83..e42da02dd6884 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -44,7 +44,8 @@ def test_deprecation_of_n_components_in_linkage_tree(): linkage_tree, X.T, n_components=10) - assert_array_equal = ([children, n_nodes, n_leaves, parent], linkage_tree(X.T)) + assert_array_equal([children, n_nodes, n_leaves, parent], + linkage_tree(X.T)) def test_linkage_misc(): # Misc tests on linkage From 0b38229971e19223694508c94df75c05aec7169d Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Tue, 11 Jul 2017 07:29:45 +0530 Subject: [PATCH 17/17] Update test_hierarchical.py --- sklearn/cluster/tests/test_hierarchical.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index e42da02dd6884..b9ca301971715 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -44,8 +44,11 @@ def test_deprecation_of_n_components_in_linkage_tree(): linkage_tree, X.T, n_components=10) - assert_array_equal([children, n_nodes, n_leaves, parent], - linkage_tree(X.T)) + children_t, n_nodes_t, n_leaves_t, parent_t = linkage_tree(X.T) + assert_array_equal(children, children_t) + assert_equal(n_nodes, n_nodes_t) + assert_equal(n_leaves, n_leaves_t) + assert_equal(parent, parent_t) def test_linkage_misc(): # Misc tests on linkage