Potrzebuję użyć zmiennych binarnych (wartości 0 i 1) w k-średnich. Ale k-średnie działa tylko ze zmiennymi ciągłymi. Wiem, że niektórzy ludzie nadal używają tych zmiennych binarnych w k-średnich, ignorując fakt, że k-średnie jest zaprojektowane tylko dla zmiennych ciągłych. To jest dla mnie nie do przyjęcia.
Pytania:
- Jaki jest zatem statystycznie / matematycznie poprawny sposób wykorzystania zmiennych binarnych w k-średnich / hierarchicznym grupowaniu?
- Jak wdrożyć rozwiązanie w SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
źródło
źródło
Odpowiedzi:
Masz rację, że k-oznacza grupowania nie należy wykonywać z danymi różnych typów. Ponieważ k-średnie jest zasadniczo prostym algorytmem wyszukiwania do znalezienia partycji, która minimalizuje kwadratowe odległości euklidesowe w obrębie klastra między obserwacjami skupionymi i centroidem skupienia, należy go stosować tylko z danymi, w których kwadratowe odległości euklidesowe byłyby znaczące.
Kiedy twoje dane składają się ze zmiennych typów mieszanych, musisz użyć odległości Gowera. @Ttnphns użytkowników CV ma świetny przegląd odległości Gower jest tutaj . Zasadniczo obliczasz macierz odległości dla swoich rzędów dla każdej zmiennej kolejno, używając rodzaju odległości odpowiedniego dla tego typu zmiennej (np. Euklidesowy dla danych ciągłych itp.); końcowa odległość rzędu do jest (ewentualnie ważoną) średnią odległości dla każdej zmiennej. Należy pamiętać, że odległość Gowera nie jest w rzeczywistości metryką . Niemniej jednak, przy mieszanych danych, odległość Gowera jest w dużej mierze jedyną grą w mieście.ja i′
W tym momencie można użyć dowolnej metody klastrowania, która może działać na macierzy odległości, zamiast wymagać oryginalnej macierzy danych. (Zauważ, że k-średnie potrzebuje tego drugiego.) Najpopularniejsze wybory to podział na medoidy (PAM, który jest zasadniczo taki sam jak k-średnie, ale wykorzystuje najbardziej centralną obserwację niż środek ciężkości), różne hierarchiczne podejścia do grupowania (np. , mediana, pojedyncze połączenie i pełne połączenie; przy hierarchicznym klastrowaniu będziesz musiał zdecydować, gdzie „ wyciąć drzewo ”, aby uzyskać ostateczne przypisania klastrów) oraz DBSCAN, który pozwala na znacznie bardziej elastyczne kształty klastrów.
Oto prosta
R
wersja demonstracyjna (nb, w rzeczywistości istnieją 3 klastry, ale dane w większości wyglądają na odpowiednie 2 klastry):Możemy zacząć od przeszukiwania różnych liczb klastrów za pomocą PAM:
Wyniki te można porównać z wynikami klastrowania hierarchicznego:
Mediana metody sugeruje 2 (prawdopodobnie 3) skupienia, singiel obsługuje tylko 2, ale kompletna metoda może sugerować 2, 3 lub 4 moje oko.
Wreszcie możemy wypróbować DBSCAN. Wymaga to określenia dwóch parametrów: eps, „odległości osiągalności” (jak blisko muszą być ze sobą połączone dwie obserwacje) i minPts (minimalna liczba punktów, które należy połączyć ze sobą, zanim będziesz mógł nazwać je 'grupa'). Zasadniczą zasadą dla minPts jest użycie o jeden więcej niż liczby wymiarów (w naszym przypadku 3 + 1 = 4), ale posiadanie zbyt małej liczby nie jest zalecane. Domyślna wartość
dbscan
to 5; trzymamy się tego. Jednym ze sposobów myślenia o odległości osiągalności jest sprawdzenie, jaki procent odległości jest mniejszy niż jakakolwiek podana wartość. Możemy to zrobić, badając rozkład odległości:Odległości wydają się skupiać w dostrzegalne wizualnie grupy „bliżej” i „dalej”. Wydaje się, że wartość .3 najlepiej rozróżnia dwie grupy odległości. Aby zbadać wrażliwość wyjścia na różne wybory eps, możemy wypróbować również .2 i .4:
Używanie
eps=.3
daje bardzo czyste rozwiązanie, które (przynajmniej jakościowo) zgadza się z tym, co widzieliśmy z innych metod powyżej.Ponieważ nie ma żadnego znaczącego skupienia 1 , powinniśmy uważać, aby dopasować obserwacje, które są nazywane „skupieniem 1” z różnych skupień. Zamiast tego możemy tworzyć tabele i jeśli większość obserwacji zwanych „skupieniem 1” w jednym dopasowaniu nosi nazwę „skupienia 2” w innym, przekonamy się, że wyniki są nadal zasadniczo podobne. W naszym przypadku różne skupienia są w większości bardzo stabilne i za każdym razem umieszczają te same obserwacje w tych samych skupieniach; różni się tylko kompletna hierarchiczna klastracja powiązań:
Oczywiście nie ma gwarancji, że jakakolwiek analiza klastra odzyska prawdziwe ukryte klastry w danych. Brak prawdziwych etykiet klastrowych (które byłyby dostępne np. W sytuacji regresji logistycznej) oznacza, że ogromna ilość informacji jest niedostępna. Nawet przy bardzo dużych zestawach danych klastry mogą nie być wystarczająco dobrze rozdzielone, aby można je było w pełni odzyskać. W naszym przypadku, ponieważ znamy prawdziwe członkostwo w klastrze, możemy porównać to z danymi wyjściowymi, aby zobaczyć, jak dobrze to zrobiło. Jak zauważyłem powyżej, w rzeczywistości istnieją 3 ukryte klastry, ale zamiast tego dane wyglądają jak 2 klastry:
źródło
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
… jak do tego dojść? używając wysokości 0,3?Spójrz na ten artykuł Fincha, http://www.jds-online.com/files/JDS-192.pdf . Opisuje zarówno, dlaczego stosowanie ciągłych metod do danych binarnych może niedokładnie grupować dane, a co ważniejsze, jakie są niektóre opcje odpowiednich funkcji odległości. Nie odpowiada, jak klastrować za pomocą k-średnich, ale raczej jak prawidłowo klastrować dane binarne za pomocą wskaźników innych niż euklidesowe i metody hierarchicznej, takiej jak Ward.
źródło