Znalazłem obszerną literaturę proponującą wszelkiego rodzaju kryteria (np. Glenn i in. 1985 (pdf) i Jung i in. 2002 (pdf)). Jednak większość z nich nie jest tak łatwa do wdrożenia (przynajmniej z mojej perspektywy). Korzystam z scipy.cluster.hierarchy, aby uzyskać hierarchię klastrów, a teraz próbuję zdecydować, jak utworzyć z tego płaskie klastry. Moim celem jest odkrycie wspólnych wzorców w moich obserwacjach, więc nie mam odniesienia do porównania uzyskanego skupienia. Czy ktoś może zaproponować pragmatyczne rozwiązanie?
clustering
Björn Pollex
źródło
źródło
Odpowiedzi:
Poniższy wpis w Wikipedii naprawdę całkiem dobrze wyjaśnia najbardziej popularne i stosunkowo proste metody:
Metoda Elbow heurystyczny opisany jest prawdopodobnie najbardziej popularny ze względu na jego proste wyjaśnienie (ilość wariancji wyjaśnia liczby klastrów) w połączeniu z kontroli wzrokowej. Informacje metoda teoretycznie nie jest trudne do realizacji i czy strona ma pewne Pseudokod można użyć, aby rozpocząć. To ostatnie jest podobne do karanego prawdopodobieństwa opartego na złożoności modelu, jak w dobrze znanych kryteriach informacyjnych, takich jak AIC, BIC itp.
źródło
Trudno jest podać jednoznaczne rozwiązanie dotyczące wyboru „najlepszej” liczby klastrów w danych, niezależnie od stosowanej metody klastrowania, ponieważ Analiza skupień ma na celu wyodrębnienie grup jednostek statystycznych (niezależnie od tego, czy są to jednostki, czy zmienne ) zasadniczo w celach eksploracyjnych lub opisowych. Dlatego też musisz zinterpretować wyniki swojego schematu klastrowania, a kilka rozwiązań klastrowych może być równie interesujących.
Teraz, w odniesieniu do zwykłych kryteriów statystycznych używanych do decydowania o tym, kiedy przestać agregować dane, jak wskazuje @ars, większość to kryteria wizualne , w tym analiza dendrogramu lub kontrola profili klastrów, zwanych również wykresami sylwetki (Rousseeuw, 1987) . Zaproponowano również kilka kryteriów numerycznych , znanych również jako wskaźniki trafności, np. Wskaźnik trafności Dunna, wskaźnik trafności Daviesa-Bouldina, wskaźnik C, gamma Huberta, aby wymienić tylko kilka. Klastrowanie hierarchiczne jest często uruchamiane razem z k-średnich (w rzeczywistości kilka instancji k-średnich, ponieważ jest to algorytm stochastyczny), dzięki czemu dodaje obsługę znalezionych rozwiązań klastrowych. Nie wiem, czy wszystkie te rzeczy są łatwo dostępne w Pythonie, ale ogromna liczba metod jest dostępna w języku R (zobaczWidok zadania klastra , cytowany już przez @mbq na powiązane pytanie: Jakie narzędzia można zastosować do zastosowania algorytmów klastrowania w MovieLens? ). Inne podejścia obejmują grupowanie rozmyte i oparte na modelach (zwane również analizą cech ukrytych w społeczności psychometrycznej), jeśli poszukujesz bardziej niezawodnego sposobu wyboru liczby klastrów w swoich danych.
BTW, właśnie natknąłem się na tę stronę, klastra Scipy , który jest rozszerzeniem Scipy do generowania, wizualizacji i analizy hierarchicznych klastrów . Może zawiera inne funkcjonalności? Słyszałem również o PyChem, który oferuje całkiem niezłe rzeczy do analizy wielowymiarowej.
Pomocne mogą być również następujące odniesienia:
Steinley, D. i Brusco, MJ (2008). Wybór zmiennych w analizie skupień: empiryczne porównanie ośmiu procedur. Psychometrika , 73 , 125-144.
źródło
Niedawno stałem się fundatorem metody wizualizacji klastrergramu (wdrożonej w R).
Używam go jako dodatkowej metody oceny „dobrej” liczby klastrów. Rozszerzenie go na inne metody klastrowania nie jest tak trudne (tak naprawdę to zrobiłem, po prostu nie opublikowałem kodu)
źródło