Skill Tracer
Skills › Scientific Agent Skills › aeon › clustering.md

clustering.md

122 lines · skills/aeon/references/clustering.md at 5f2bc03

Open on GitHub
1# Time Series Clustering
2
3Aeon provides clustering algorithms adapted for temporal data with specialized distance metrics and averaging methods.
4

Time Series Clustering

Aeon provides clustering algorithms adapted for temporal data with specialized distance metrics and averaging methods.

Raw lines 1 to 4
5## Partitioning Algorithms
6
7Standard k-means/k-medoids adapted for time series:
8
9- `TimeSeriesKMeans` - K-means with temporal distance metrics (DTW, Euclidean, etc.)
10- `TimeSeriesKMedoids` - Uses actual time series as cluster centers
11- `KShape` - Shape-based clustering algorithm
12- `TimeSeriesKernelKMeans` - Kernel-based variant for nonlinear patterns
14**Use when**: Known number of clusters, spherical cluster shapes expected.

Partitioning Algorithms

Standard k-means/k-medoids adapted for time series:

  • TimeSeriesKMeans - K-means with temporal distance metrics (DTW, Euclidean, etc.)
  • TimeSeriesKMedoids - Uses actual time series as cluster centers
  • KShape - Shape-based clustering algorithm
  • TimeSeriesKernelKMeans - Kernel-based variant for nonlinear patterns

Use when: Known number of clusters, spherical cluster shapes expected.

Raw lines 5 to 15
16## Large Dataset Methods
18Efficient clustering for large collections:
20- `TimeSeriesCLARA` - Clustering Large Applications with sampling
21- `TimeSeriesCLARANS` - Randomized search variant of CLARA
23**Use when**: Dataset too large for standard k-medoids, need scalability.

Large Dataset Methods

Efficient clustering for large collections:

  • TimeSeriesCLARA - Clustering Large Applications with sampling
  • TimeSeriesCLARANS - Randomized search variant of CLARA

Use when: Dataset too large for standard k-medoids, need scalability.

Raw lines 16 to 24
25## Elastic Distance Clustering
27Specialized for alignment-based similarity:
29- `KASBA` - K-means with stochastic subgradient elastic barycenter averaging
30- `ElasticSOM` - Self-organizing map using elastic distances
32**Use when**: Time series have temporal shifts or warping.

Elastic Distance Clustering

Specialized for alignment-based similarity:

  • KASBA - K-means with stochastic subgradient elastic barycenter averaging
  • ElasticSOM - Self-organizing map using elastic distances

Use when: Time series have temporal shifts or warping.

Raw lines 25 to 33
34## Spectral Methods
36Scale- and shift-invariant centroid clustering:
38- `KSpectralCentroid` - K-Spectral Centroid clustering using shape-based alignment
40**Use when**: Series shape matters despite differences in scale and temporal shift.

Spectral Methods

Scale- and shift-invariant centroid clustering:

  • KSpectralCentroid - K-Spectral Centroid clustering using shape-based alignment

Use when: Series shape matters despite differences in scale and temporal shift.

Raw lines 34 to 41
42## Deep Learning Clustering
44Neural network-based clustering with auto-encoders:
46- `AEFCNClusterer` - Fully convolutional auto-encoder
47- `AEResNetClusterer` - Residual network auto-encoder
48- `AEDCNNClusterer` - Dilated CNN auto-encoder
49- `AEDRNNClusterer` - Dilated RNN auto-encoder
50- `AEBiGRUClusterer` - Bidirectional GRU auto-encoder
51- `AEAttentionBiGRUClusterer` - Attention-enhanced BiGRU auto-encoder
53**Use when**: Large datasets, need learned representations, or complex patterns.

Deep Learning Clustering

Neural network-based clustering with auto-encoders:

  • AEFCNClusterer - Fully convolutional auto-encoder
  • AEResNetClusterer - Residual network auto-encoder
  • AEDCNNClusterer - Dilated CNN auto-encoder
  • AEDRNNClusterer - Dilated RNN auto-encoder
  • AEBiGRUClusterer - Bidirectional GRU auto-encoder
  • AEAttentionBiGRUClusterer - Attention-enhanced BiGRU auto-encoder

Use when: Large datasets, need learned representations, or complex patterns.

Raw lines 42 to 54
55## Feature-Based Clustering
57Transform to feature space before clustering:
59- `Catch22Clusterer` - Clusters on 22 canonical features
60- `SummaryClusterer` - Uses summary statistics
61- `TSFreshClusterer` - Automated tsfresh features
63**Use when**: Raw time series not informative, need interpretable features.

Feature-Based Clustering

Transform to feature space before clustering:

  • Catch22Clusterer - Clusters on 22 canonical features
  • SummaryClusterer - Uses summary statistics
  • TSFreshClusterer - Automated tsfresh features

Use when: Raw time series not informative, need interpretable features.

Raw lines 55 to 64
65## Composition
67Build custom clustering pipelines:
69- `ClustererPipeline` - Chain transformers with clusterers

Composition

Build custom clustering pipelines:

  • ClustererPipeline - Chain transformers with clusterers
Raw lines 65 to 70
71## Averaging Methods
73Compute cluster centers for time series:
75- `mean_average` - Arithmetic mean
76- `ba_average` - Barycentric averaging with DTW
77- `kasba_average` - Stochastic subgradient elastic barycenter averaging
78- `shift_invariant_average` - General shift-invariant method
80**Use when**: Need representative cluster centers for visualization or initialization.

Averaging Methods

Compute cluster centers for time series:

  • mean_average - Arithmetic mean
  • ba_average - Barycentric averaging with DTW
  • kasba_average - Stochastic subgradient elastic barycenter averaging
  • shift_invariant_average - General shift-invariant method

Use when: Need representative cluster centers for visualization or initialization.

Raw lines 71 to 81
82## Quick Start
84```python
85from aeon.clustering import TimeSeriesKMeans
86from aeon.datasets import load_classification
88# Load data (using classification data for clustering)
89X_train, _ = load_classification("GunPoint", split="train")
91# Cluster time series
92clusterer = TimeSeriesKMeans(
93 n_clusters=3,
94 distance="dtw", # Use DTW distance
95 averaging_method="ba" # Barycentric averaging
97labels = clusterer.fit_predict(X_train)
98centers = clusterer.cluster_centers_
99```

Quick Start

from aeon.clustering import TimeSeriesKMeans
from aeon.datasets import load_classification

# Load data (using classification data for clustering)
X_train, _ = load_classification("GunPoint", split="train")

# Cluster time series
clusterer = TimeSeriesKMeans(
    n_clusters=3,
    distance="dtw",  # Use DTW distance
    averaging_method="ba"  # Barycentric averaging
)
labels = clusterer.fit_predict(X_train)
centers = clusterer.cluster_centers_
Raw lines 82 to 100
101## Algorithm Selection
103- **Speed priority**: TimeSeriesKMeans with Euclidean distance
104- **Temporal alignment**: KASBA, TimeSeriesKMeans with DTW
105- **Large datasets**: TimeSeriesCLARA, TimeSeriesCLARANS
106- **Complex patterns**: Deep learning clusterers
107- **Interpretability**: Catch22Clusterer, SummaryClusterer
108- **Scale/shift invariant shapes**: KSpectralCentroid

Algorithm Selection

  • Speed priority: TimeSeriesKMeans with Euclidean distance
  • Temporal alignment: KASBA, TimeSeriesKMeans with DTW
  • Large datasets: TimeSeriesCLARA, TimeSeriesCLARANS
  • Complex patterns: Deep learning clusterers
  • Interpretability: Catch22Clusterer, SummaryClusterer
  • Scale/shift invariant shapes: KSpectralCentroid
Raw lines 101 to 109
110## Distance Metrics
112Compatible distance metrics include:
113- Euclidean, Manhattan, Minkowski (lock-step)
114- DTW, DDTW, WDTW (elastic with alignment)
115- ERP, EDR, LCSS (edit-based)
116- MSM, TWE (specialized elastic)

Distance Metrics

Compatible distance metrics include:

  • Euclidean, Manhattan, Minkowski (lock-step)
  • DTW, DDTW, WDTW (elastic with alignment)
  • ERP, EDR, LCSS (edit-based)
  • MSM, TWE (specialized elastic)
Raw lines 110 to 117
118## Evaluation
120For elastic distances, compute a pairwise matrix and pass it to sklearn `silhouette_score(..., metric="precomputed")`. Davies-Bouldin and Calinski-Harabasz expect Euclidean feature vectors; do not pass a DTW matrix as features. With known class labels, `aeon.benchmarking.metrics.clustering.clustering_accuracy_score` optimally matches cluster IDs to class IDs.
122For Euclidean k-means set `distance="euclidean", averaging_method="mean"` explicitly. Elastic barycenter averaging supports only its documented distance subset; a distance callable alone does not guarantee a compatible averaging method. `TimeSeriesAgglomerative` (new in 1.6) supports fit-time labels but does not predict unseen cases; inspect `capability:predict` for clusterers.

Evaluation

For elastic distances, compute a pairwise matrix and pass it to sklearn silhouette_score(..., metric="precomputed"). Davies-Bouldin and Calinski-Harabasz expect Euclidean feature vectors; do not pass a DTW matrix as features. With known class labels, aeon.benchmarking.metrics.clustering.clustering_accuracy_score optimally matches cluster IDs to class IDs.

For Euclidean k-means set distance="euclidean", averaging_method="mean" explicitly. Elastic barycenter averaging supports only its documented distance subset; a distance callable alone does not guarantee a compatible averaging method. TimeSeriesAgglomerative (new in 1.6) supports fit-time labels but does not predict unseen cases; inspect capability:predict for clusterers.

Raw lines 118 to 122