tslearn.clustering.KShape¶
-
class
tslearn.clustering.
KShape
(n_clusters=3, max_iter=100, tol=1e-06, n_init=1, verbose=True, random_state=None)[source]¶ KShape clustering for time series.
KShape was originally presented in [1].
Parameters: - n_clusters (int (default: 3)) – Number of clusters to form.
- max_iter (int (default: 100)) – Maximum number of iterations of the k-Shape algorithm.
- tol (float (default: 1e-6)) – Inertia variation threshold. If at some point, inertia varies less than this threshold between two consecutive iterations, the model is considered to have converged and the algorithm stops.
- n_init (int (default: 1)) – Number of time the k-Shape algorithm will be run with different centroid seeds. The final results will be the best output of n_init consecutive runs in terms of inertia.
- verbose (bool (default: True)) – Whether or not to print information about the inertia while learning the model.
- random_state (integer or numpy.RandomState, optional) – Generator used to initialize the centers. If an integer is given, it fixes the seed. Defaults to the global numpy random number generator.
-
cluster_centers_
¶ Centroids
Type: numpy.ndarray of shape (sz, d)
-
labels_
¶ Labels of each point
Type: numpy.ndarray of integers with shape (n_ts, )
-
inertia_
¶ Sum of distances of samples to their closest cluster center.
Type: float
Note
This method requires a dataset of equal-sized time series.
Examples
>>> from tslearn.generators import random_walks >>> X = random_walks(n_ts=50, sz=32, d=1) >>> X = TimeSeriesScalerMeanVariance(mu=0., std=1.).fit_transform(X) >>> ks = KShape(n_clusters=3, n_init=1, verbose=False, random_state=0).fit(X) >>> ks.cluster_centers_.shape (3, 32, 1) >>> dists = ks._cross_dists(X) >>> numpy.alltrue(ks.labels_ == dists.argmin(axis=1)) True >>> numpy.alltrue(ks.labels_ == ks.predict(X)) True >>> numpy.alltrue(ks.predict(X) == KShape(n_clusters=3, n_init=1, verbose=False, random_state=0).fit_predict(X)) True >>> KShape(n_clusters=101, verbose=False, random_state=0).fit(X).X_fit_ is None True
References
[1] J. Paparrizos & L. Gravano. k-Shape: Efficient and Accurate Clustering of Time Series. SIGMOD 2015. pp. 1855-1870. Methods
__init__
([n_clusters, max_iter, tol, …])Initialize self. fit
(X[, y])Compute k-Shape clustering. fit_predict
(X[, y])Fit k-Shape clustering using X and then predict the closest cluster each time series in X belongs to. get_params
([deep])Get parameters for this estimator. predict
(X)Predict the closest cluster each time series in X belongs to. set_params
(**params)Set the parameters of this estimator.