Oto podsumowanie kilku algorytmów klastrowania, które mogą pomóc odpowiedzieć na pytanie
„której techniki klastrowania powinienem użyć?”
Nie ma obiektywnie „poprawnego” algorytmu grupowania Ref
Algorytmy klastrowania można kategoryzować na podstawie ich „modelu klastrowego”. Algorytm zaprojektowany dla określonego rodzaju modelu na ogół zawiedzie na innym modelu. Na przykład, k-średnie nie może znaleźć klastrów niewypukłych, może znaleźć tylko klastry o kształcie okrągłym.
Dlatego zrozumienie tych „modeli klastrów” staje się kluczem do zrozumienia, jak wybrać spośród różnych algorytmów / metod klastrowania. Typowe modele klastrów obejmują:
[1] Modele łączności: buduje modele oparte na łączności na odległość. Np. Hierarchiczne grupowanie. Używane, gdy potrzebujemy różnych partycjonowania w zależności od wysokości cięcia drzewa. Funkcja R: hclust w pakiecie statystyk.
[2] Modele centroidów: buduje modele, reprezentując każdy klaster pojedynczym średnim wektorem. Używane, gdy potrzebujemy wyraźnego partycjonowania (w przeciwieństwie do rozmytego grupowania opisanego później). Funkcja R: kmeany w pakiecie statystyk.
[3] Modele dystrybucji: buduje modele na podstawie rozkładów statystycznych, takich jak wielowymiarowe rozkłady normalne stosowane przez algorytm maksymalizacji oczekiwań. Używany, gdy kształty skupień mogą być dowolne, w przeciwieństwie do k-średnich, które zakładają skupienia kołowe. Funkcja R: emcluster w pakiecie emcluster.
[4] Modele gęstości: buduje modele oparte na klastrach jako połączonych gęstych obszarach w przestrzeni danych. Np. DBSCAN i optyka. Używane, gdy kształty skupień mogą być dowolne, w przeciwieństwie do k-średnich, które zakładają okrągłe skupienia. Funkcja R dbscan w pakiecie dbscan.
[5] Modele podprzestrzeni: buduje modele na podstawie zarówno elementów klastra, jak i odpowiednich atrybutów. Np. Biclustering (znany również jako klastrowanie równoległe lub klastrowanie w dwóch trybach). Używany, gdy potrzebne jest jednoczesne grupowanie wierszy i kolumn. Funkcja R biclust w pakiecie biclust.
[6] Modele grup: buduje modele na podstawie informacji o grupowaniu. Np. Wspólne filtrowanie (algorytm rekomendujący). Funkcja R Polecający w pakiecie polecającym.
[7] Modele oparte na grafie: buduje modele oparte na klice. Algorytmy wykrywania struktury społeczności starają się znaleźć gęste podgrafy w grafach skierowanych lub niekierowanych. Np. Funkcja R klaster_walktrap w pakiecie igraph.
[8] Kohonen Samoorganizująca się mapa obiektów: buduje modele oparte na sieci neuronowej. Funkcja R som w pakiecie kohonen.
[9] Gromadzenie spektralne: buduje modele w oparciu o niewypukłą strukturę skupień lub gdy miara środka nie jest odpowiednim opisem pełnego skupienia. Funkcja R specc w pakiecie kernlab.
[10] Klastrowanie podprzestrzeni: w przypadku danych wielowymiarowych funkcje odległości mogą być problematyczne. modele klastrów zawierają odpowiednie atrybuty dla klastra. Np. Funkcja hddc w pakiecie R HDclassif.
[11] Grupowanie sekwencji: powiązane sekwencje grup. Pakiet rBlast.
[12] Propagacja powinowactwa: buduje modele w oparciu o przekazywanie komunikatów między punktami danych Nie wymaga określenia liczby klastrów przed uruchomieniem algorytmu. Jest lepszy w przypadku niektórych zadań związanych z wizją komputerową i biologią obliczeniową, np. Grupowaniem zdjęć ludzkich twarzy i identyfikowaniem regulowanych transkryptów, niż k-średnich, Ref Rpackage APCluster.
[13] Klastrowanie strumieniowe: buduje modele na podstawie stale przybywających danych, takich jak dane telefoniczne, transakcje finansowe itp. Np. Pakiet BIRCH R [ https://cran.r-project.org/src/contrib/Archive/birch/]
[14] Grupowanie dokumentów (lub grupowanie tekstu): buduje modele oparte na SVD. Wykorzystano go w ekstrakcji tematów. Na przykład Carrot [ http://search.carrot2.org] to mechanizm klastrowania wyników wyszukiwania typu open source, który może grupować dokumenty w kategorie tematyczne.
[15] Model klasy utajonej: Odnosi zestaw obserwowanych zmiennych wielowymiarowych do zestawu zmiennych utajonych. LCA może być stosowane w filtrowaniu grupowym. Funkcja R Polecający w pakiecie polecający ma funkcję filtrowania grupowego.
[16] Biclustering: Służy do jednoczesnego grupowania wierszy i kolumn danych w dwóch trybach. Np. Biclust funkcji R w pakiecie biclust.
[17] Miękkie grupowanie (rozmyte grupowanie): Każdy obiekt należy do każdego skupienia w pewnym stopniu. Np. Funkcja R Fclust w pakiecie fclust.