diff --git a/sklearn/cluster/hierarchical.py b/sklearn/cluster/hierarchical.py index 2195fe8ee3d85..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,6 +365,10 @@ def linkage_tree(X, connectivity=None, n_components=None, -------- ward_tree : hierarchical clustering with ward linkage """ + if n_components != 'deprecated': + 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)) diff --git a/sklearn/cluster/tests/test_hierarchical.py b/sklearn/cluster/tests/test_hierarchical.py index 986b92e0ce9f4..b9ca301971715 100644 --- a/sklearn/cluster/tests/test_hierarchical.py +++ b/sklearn/cluster/tests/test_hierarchical.py @@ -36,6 +36,20 @@ 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) + # 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_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 rng = np.random.RandomState(42)