class sklearn.cluster.Ward(n_clusters=2, memory=Memory(cachedir=None), connectivity=None, n_components=None, compute_full_tree='auto', pooling_func=<function mean at 0x1c58cf8>)[source]

Ward hierarchical clustering: constructs a tree and cuts it.

Recursively merges the pair of clusters that minimally increases within-cluster variance.


n_clusters : int or ndarray

The number of clusters to find.

connectivity : sparse matrix (optional)

Connectivity matrix. Defines for each sample the neighboring samples following a given structure of the data. Default is None, i.e, the hierarchical clustering algorithm is unstructured.

memory : Instance of joblib.Memory or string (optional)

Used to cache the output of the computation of the tree. By default, no caching is done. If a string is given, it is the path to the caching directory.

n_components : int (optional)

The number of connected components in the graph defined by the connectivity matrix. If not set, it is estimated.

compute_full_tree : bool or ‘auto’ (optional)

Stop early the construction of the tree at n_clusters. This is useful to decrease computation time if the number of clusters is not small compared to the number of samples. This option is useful only when specifying a connectivity matrix. Note also that when varying the number of clusters and using caching, it may be advantageous to compute the full tree.


labels_ : array [n_features]

cluster labels for each feature

n_leaves_ : int

Number of leaves in the hierarchical tree.

n_components_ : int

The estimated number of connected components in the graph.

children_ : array-like, shape (n_nodes-1, 2)

The children of each non-leaf node. Values less than n_samples refer to leaves of the tree. A greater value i indicates a node with children children_[i - n_samples].

See also

agglomerative hierarchical clustering


__init__(n_clusters=2, memory=Memory(cachedir=None), connectivity=None, n_components=None, compute_full_tree='auto', pooling_func=<function mean at 0x1c58cf8>)[source]
fit(X, y=None)[source]

Fit the hierarchical clustering on the data


X : array-like, shape = [n_samples, n_features]

The samples a.k.a. observations.


self :

fit_predict(X, y=None)[source]

Performs clustering on X and returns cluster labels.


X : ndarray, shape (n_samples, n_features)

Input data.


y : ndarray, shape (n_samples,)

cluster labels


Get parameters for this estimator.


deep: boolean, optional :

If True, will return the parameters for this estimator and contained subobjects that are estimators.


params : mapping of string to any

Parameter names mapped to their values.


Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The former have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns:self :