Skip to content

Instantly share code, notes, and snippets.

@Menziess
Created July 7, 2024 12:48
Show Gist options
  • Save Menziess/976a8d3a09aee61957571d26ecf6658a to your computer and use it in GitHub Desktop.
Save Menziess/976a8d3a09aee61957571d26ecf6658a to your computer and use it in GitHub Desktop.
from tslearn.clustering import TimeSeriesKMeans
from tslearn.utils import to_time_series_dataset
import pandas as pd
data = [
[0, 1, 2, 3, 4],
[1, 2, 3, 4, 0],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[5, 6, 3, 4, 0],
[5, 6, 3, 4, 0, 5, 6, 3, 4, 0],
]
X = to_time_series_dataset(data)
km = TimeSeriesKMeans(n_clusters=4, metric='dtw', verbose=False, random_state=0, max_iter=5, n_init=3)
labels = km.fit_predict(X)
# Using pandas DataFrame
df = pd.DataFrame([
{'id': i, 'timeseries': x}
for i, x in enumerate(data)
]).set_index('turnaround_id')
X = to_time_series_dataset(df['timeseries'].to_list())
km = TimeSeriesKMeans(n_clusters=4, metric='dtw', verbose=False, random_state=0, max_iter=5, n_init=3)
df['labels'] = km.fit_predict(X)
# Silhouette
from tslearn.clustering import silhouette_score
silhouette_score(X, labels)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment