Wydaje się, że w przypadku średnich K i innych powiązanych algorytmów grupowanie opiera się na obliczaniu odległości między punktami. Czy jest taki, który działa bez niego?
Wydaje się, że w przypadku średnich K i innych powiązanych algorytmów grupowanie opiera się na obliczaniu odległości między punktami. Czy jest taki, który działa bez niego?
Odpowiedzi:
Jednym z przykładów takiej metody są modele mieszanki skończonej (np. Tutaj lub tutaj ) stosowane do grupowania. W FMM rozważyć rozmieszczenie ( ) o zmiennej X w postaci mieszaniny K rozkładów ( f 1 , . . . , F k ):
gdzie jest wektorem parametrów θ = ( Õ ' , θ ' 1 , . . . , θ ' K ) " i π k jest stosunek k -tym rozkładu mieszaniny i θ k jest parametrem (lub parametry) od f k dystrybucji.
Szczególnym przypadkiem danych dyskretnych jest analiza ukrytych klas (np. Tutaj ) zdefiniowana jako:
gdzie jest prawdopodobieństwo obserwowania utajony klasy K (czyli π k ), P ( x ) jest prawdopodobieństwo obserwację x wartość i P ( x | k ) jest prawdopodobieństwo x będących w klasie k .
Zazwyczaj zarówno dla FMM, jak i LCA stosuje się algorytm EM , ale możliwe jest również podejście bayesowskie, ale nieco bardziej wymagające ze względu na problemy, takie jak identyfikacja modelu i zmiana etykiety (np . Blog Xi'ana ).
Zatem nie ma miary odległości, a raczej model statystyczny określający strukturę (rozkład) danych. Z tego powodu inną nazwą tej metody jest „klastrowanie oparte na modelu”.
Sprawdź dwie książki na temat FMM:
Jednym z najbardziej popularnych pakietów klastrów, które wykorzystuje się FMM mclust
(sprawdź tutaj lub tutaj ), które jest realizowane w R . Możliwe są jednak bardziej skomplikowane FMM, sprawdź na przykład flexmix
pakiet i jego dokumentację . Dla LCA istnieje pakiet R poLCA .
Istnieje wiele podejść do klastrowania opartych na siatce . Nie obliczają odległości, ponieważ często daje to kwadratowy czas działania. Zamiast tego dzielą dane i agregują je w komórki siatki. Ale intuicja stojąca za takimi podejściami jest zwykle bardzo ściśle związana z odległościami.
Istnieje wiele algorytmów grupowania dla danych kategorycznych, takich jak COOLCAT i STUCCO. Odległości nie są łatwe w użyciu z takimi danymi (kodowanie na gorąco to hack i nie daje szczególnie znaczących odległości). Ale nie słyszałem o nikim, kto używałby tych algorytmów ...
Istnieją metody grupowania wykresów. Ale albo ograniczają się do klasycznych problemów graficznych, takich jak wyszukiwanie kliki lub bliski kliki i kolorowanie wykresów, lub są ściśle powiązane z grupowaniem na podstawie odległości (jeśli masz wykres ważony).
Klastrowanie oparte na gęstości, takie jak DBSCAN, ma inną nazwę i nie koncentruje się na minimalizowaniu odległości; ale „gęstość” jest zwykle określana w odniesieniu do odległości, więc technicznie algorytmy te są oparte na odległości lub na siatce.
Zasadniczą częścią pomijanego pytania jest to, jakie są twoje dane ?
Oprócz poprzednich miłych odpowiedzi sugerowałbym rozważenie modeli mieszania Dirichleta i hierarchicznych modeli procesów Dirichleta opartych na Bayesian . Aby uzyskać raczej kompleksowy i ogólny przegląd podejść i metod określania optymalnej liczby klastrów , zobacz tę doskonałą odpowiedź na StackOverflow : /programming//a/15376462/2872891 .
Podejście czysto dyskryminujące to „uregulowana maksymalizacja informacji” według Gomesa i in . Nie ma w tym żadnego pojęcia o podobieństwie / odległości.
Chodzi o regresję logistyczną podobną do modelu, która umieszcza punkty w pojemnikach. Ale zamiast trenować go, aby zmaksymalizować pewną formę logarytmu prawdopodobieństwa etykiet klas, funkcją celu jest ta, która umieszcza punkty w różnych klastrach.
Rozszerzenie na metody jądra lub sieci neuronowe dla klastrowania nieliniowego jest proste.