msmbuilder.cluster.AffinityPropagation

class msmbuilder.cluster.AffinityPropagation(damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False)

Perform Affinity Propagation Clustering of data.

Read more in the User Guide.

Parameters:

damping : float, optional, default: 0.5

Damping factor between 0.5 and 1.

convergence_iter : int, optional, default: 15

Number of iterations with no change in the number of estimated clusters that stops the convergence.

max_iter : int, optional, default: 200

Maximum number of iterations.

copy : boolean, optional, default: True

Make a copy of input data.

preference : array-like, shape (n_samples,) or float, optional

Preferences for each point - points with larger values of preferences are more likely to be chosen as exemplars. The number of exemplars, ie of clusters, is influenced by the input preferences value. If the preferences are not passed as arguments, they will be set to the median of the input similarities.

affinity : string, optional, default=``euclidean``

Which affinity to use. At the moment precomputed and euclidean are supported. euclidean uses the negative squared euclidean distance between points.

verbose : boolean, optional, default: False

Whether to be verbose.

Notes

See examples/cluster/plot_affinity_propagation.py for an example.

The algorithmic complexity of affinity propagation is quadratic in the number of points.

References

Brendan J. Frey and Delbert Dueck, “Clustering by Passing Messages Between Data Points”, Science Feb. 2007

Attributes

cluster_centers_indices_ (array, shape (n_clusters,)) Indices of cluster centers
cluster_centers_ (array, shape (n_clusters, n_features)) Cluster centers (if affinity != precomputed).
labels_ (list of arrays, each of shape [sequence_length, ]) The label of each point is an integer in [0, n_clusters).
affinity_matrix_ (array, shape (n_samples, n_samples)) Stores the affinity matrix used in fit.
n_iter_ (int) Number of iterations taken to converge.

Methods

fit(sequences[, y]) Fit the clustering on the data
fit_predict(sequences[, y]) Performs clustering on X and returns cluster labels.
fit_transform(sequences[, y]) Alias for fit_predict
get_params([deep]) Get parameters for this estimator.
partial_predict(X[, y]) Predict the closest cluster each sample in X belongs to.
partial_transform(X) Alias for partial_predict
predict(sequences[, y]) Predict the closest cluster each sample in each sequence in sequences belongs to.
set_params(**params) Set the parameters of this estimator.
summarize() Return some diagnostic summary statistics about this Markov model
transform(sequences) Alias for predict
__init__(damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False)

Methods

__init__([damping, max_iter, ...])
fit(sequences[, y]) Fit the clustering on the data
fit_predict(sequences[, y]) Performs clustering on X and returns cluster labels.
fit_transform(sequences[, y]) Alias for fit_predict
get_params([deep]) Get parameters for this estimator.
partial_predict(X[, y]) Predict the closest cluster each sample in X belongs to.
partial_transform(X) Alias for partial_predict
predict(sequences[, y]) Predict the closest cluster each sample in each sequence in sequences belongs to.
set_params(**params) Set the parameters of this estimator.
summarize() Return some diagnostic summary statistics about this Markov model
transform(sequences) Alias for predict
fit(sequences, y=None)

Fit the clustering on the data

Parameters:

sequences : list of array-like, each of shape [sequence_length, n_features]

A list of multivariate timeseries. Each sequence may have a different length, but they all must have the same number of features.

Returns:

self

fit_predict(sequences, y=None)

Performs clustering on X and returns cluster labels.

Parameters:

sequences : list of array-like, each of shape [sequence_length, n_features]

A list of multivariate timeseries. Each sequence may have a different length, but they all must have the same number of features.

Returns:

Y : list of ndarray, each of shape [sequence_length, ]

Cluster labels

fit_transform(sequences, y=None)

Alias for fit_predict

get_params(deep=True)

Get parameters for this estimator.

Parameters:

deep: boolean, optional

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

Returns:

params : mapping of string to any

Parameter names mapped to their values.

partial_predict(X, y=None)

Predict the closest cluster each sample in X belongs to.

In the vector quantization literature, cluster_centers_ is called the code book and each value returned by predict is the index of the closest code in the code book.

Parameters:

X : array-like shape=(n_samples, n_features)

A single timeseries.

Returns:

Y : array, shape=(n_samples,)

Index of the cluster that each sample belongs to

partial_transform(X)

Alias for partial_predict

predict(sequences, y=None)

Predict the closest cluster each sample in each sequence in sequences belongs to.

In the vector quantization literature, cluster_centers_ is called the code book and each value returned by predict is the index of the closest code in the code book.

Parameters:

sequences : list of array-like, each of shape [sequence_length, n_features]

A list of multivariate timeseries. Each sequence may have a different length, but they all must have the same number of features.

Returns:

Y : list of arrays, each of shape [sequence_length,]

Index of the closest center each sample belongs to.

set_params(**params)

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
summarize()

Return some diagnostic summary statistics about this Markov model

transform(sequences)

Alias for predict