2013-08-07 2 views
0

Я немного смущен насчет clusering с Scipy в Python. Вот мой исходный код:Кластеризация с Scipy в Python? (иерархическая кластеризация)

import scipy.spatial.distance as dist 
import numpy, scipy 

dataMatrix = numpy.array(matrix) 
distMatrix = dist.pdist(dataMatrix, 'euclidean') 
distSquareMatrix = dist.squareform(distMatrix) 

Y = scipy.cluster.hierarchy.linkage(distSquareMatrix, method='complete') 

Должен ли я использовать «distMatrix» или squareform «distSquareMatrix» в качестве входных данных для кластеризации? Потому что я видел оба метода в других сообщениях. Но выход отличается. Теперь я не уверен, что мне нужно выбирать.

ответ

4

Вам необходимо передать матрицу расстояния в конденсированной форме, не превращая ее в squareform. Функция squareform полезна, если вы хотите более легко манипулировать матрицей расстояний как 2D-массив. Функции scipy.cluster.hierarchy используют сжатую форму с целью экономии примерно в два раза по памяти.

Надеюсь, это поможет.

+0

Спасибо за ваш ответ! Это означает, что я должен использовать «distMatrix» в функции привязки ... – Joko

Смежные вопросы