2013-04-11 9 views
16

jeśli masz ten hierarchiczny połączenia klastrów w scipy w Pythonie:Jak obliczyć przypisania klastra z macierzy powiązań/odległości w scipie w Pythonie?

from scipy.cluster.hierarchy import linkage 
# dist_matrix is long form distance matrix 
linkage_matrix = linkage(squareform(dist_matrix), linkage_method) 

następnie Co to jest skuteczny sposób, aby przejść z tym do zadań klastra dla poszczególnych punktów? tj. wektor o długości N, gdzie N jest liczbą punktów, gdzie każdy wpis i jest numerem klastra punktu i, biorąc pod uwagę liczbę klastrów wygenerowanych przez dany próg thresh w wynikowym grupowaniu?

Aby wyjaśnić: Numer klastra będzie klastrem, w którym znajduje się po zastosowaniu progu do drzewa. W takim przypadku otrzymasz unikalny klaster dla każdego węzła liścia dla klastra, w którym się znajduje. Unikalny w tym sensie, że każdy punkt należy do "najbardziej specyficznego klastra", który jest zdefiniowany przez próg, w którym przecinałeś dendrogram.

Wiem, że scipy.cluster.hierarchy.fclusterdata daje to przypisanie klastra jako wartość zwracaną, ale zaczynam od niestandardowej matrycy odległości i metryki odległości, więc nie mogę użyć fclusterdata. Pytanie sprowadza się do: w jaki sposób mogę obliczyć, co oblicza fclusterdata - przypisania klastra?

+1

Jeśli dasz squareform (dist_matrix) do łącznika(), matryca jest uważany za obserwacji i grupowanie wyniki mogą być nieprawidłowe. Możesz podać skondensowany wektor macierzy odległości bezpośrednio jako wejście do wiązania(). – HongboZhu

+0

więcej szczegółów: https://github.com/scipy/scipy/issues/2614 – HongboZhu

Odpowiedz

14

Jeśli rozumiem cię, że to, co robi fcluster:

scipy.cluster.hierarchy.fcluster(Z, t, criterion='inconsistent', depth=2, R=None, monocrit=None)

Formy klastrów płaskie z hierarchicznego grupowania określonym przez Z. macierzy podnośnik

...

Zwraca: tablica o długości n. T [i] jest numerem klastra płaskiego, do którego należy oryginalna obserwacja.

Po prostu zadzwoń pod numer fcluster(linkage_matrix, t), gdzie t jest twoją wartością progową.

Powiązane problemy