Агломерационная кластеризация с использованием матрицы расстояний DTW - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь кластеризовать набор данных временных рядов. Для этого я рассчитал попарно расстояние DTW. Эти данные собираются в матрице расстояний, которую я хотел бы использовать в качестве входных данных для метода Sklearn AgglomerativeClustering ().

Кажется, мне нужно использовать сжатую матрицу расстояний для этого. Но если я сделаю это, метод кластеризации интерпретирует каждое расстояние как новый образец, поэтому я получаю слишком много меток. Как мне правильно это сделать?

Это пример кода, который я пробовал:

import numpy as np

# Test symmetric matrix
N = 4
b = np.random.randint(0,5,size=(N,N))
b_symm = (b + b.T)/2
np.fill_diagonal(b_symm,np.zeros(N))

# Condensed matrix
condensed = squareform(b_symm)
model = AgglomerativeClustering(n_clusters=2, linkage=linkage)
y = model.fit_predict(condensed.reshape(-1,1))

1 Ответ

0 голосов
/ 30 августа 2018

Пожалуйста, смотрите документацию:

* ** 1003 тысяча два *http://scikit -learn.org / стабильный / модули / полученный / sklearn.cluster.AgglomerativeClustering.html

affinity: string или callable, по умолчанию: «евклидов»

Метрика, используемая для вычисления связи. Может быть «евклидовым», «l1», «l2», «manhattan», «cosine» или ‘ с предварительным вычислением ’. Если связь «подопечная», принимается только «евклидов».

...