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?
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
więcej szczegółów: https://github.com/scipy/scipy/issues/2614 – HongboZhu