Nauczyłem się, że wybierając liczbę klastrów, powinieneś poszukać punktu łokcia dla różnych wartości K. Wykreśliłem wartości withinss dla wartości k od 1 do 10, ale nie widzę wyraźnego łokieć. Co robisz w takim przypadku?
Nauczyłem się, że wybierając liczbę klastrów, powinieneś poszukać punktu łokcia dla różnych wartości K. Wykreśliłem wartości withinss dla wartości k od 1 do 10, ale nie widzę wyraźnego łokieć. Co robisz w takim przypadku?
Odpowiedzi:
Być może używasz niewłaściwego algorytmu dla swojego problemu.
Środki K są bardzo wrażliwe na przetwarzanie wstępne. Jeśli jeden atrybut jest na znacznie większą skalę niż inne, zdominuje wynik. Twój wynik będzie wtedy efektywnie jednowymiarowy
Cokolwiek zrobisz, musisz zweryfikować swoje wyniki za pomocą czegoś innego niż rozpoczynanie od liczby, takiej jak SSQ. Zamiast tego rozważ wizualizację .
Wizualizacja może również powiedzieć, że być może w twoich danych jest tylko jeden klaster .
Jednym ze sposobów jest ręczne sprawdzenie członków w klastrach pod kątem określonego k, aby sprawdzić, czy grupy mają sens (czy można je rozróżnić?). Można tego dokonać za pomocą tabel awaryjnych i środków warunkowych. Zrób to dla różnych wartości K, aby określić, która wartość jest odpowiednia.
Mniej subiektywnym sposobem jest użycie wartości sylwetki:
/programming/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function
Można to obliczyć za pomocą twojego ulubionego pakietu oprogramowania. Z linku:
Ta metoda porównuje podobieństwo wewnątrz grupy z podobieństwem najbliższej grupy. Jeśli jakakolwiek średnia odległość członka danych do innych członków tego samego klastra jest większa niż średnia odległość do niektórych innych członków klastra, wówczas wartość ta jest ujemna, a tworzenie klastrów nie powiodło się. Z drugiej strony wartości silhuette zbliżone do 1 wskazują na pomyślną operację grupowania. 0,5 nie jest dokładną miarą dla grupowania.
contingency tables and conditional means
To jest dalej mistyczne. Co mam z nimi zrobić, aby dotrzeć „subiektywnie” do dobrego k?
Zasadniczo możesz rozważyć:
Możemy użyć pakietu NbClust, aby znaleźć najbardziej optymalną wartość k. Zapewnia 30 wskaźników do określania liczby klastrów i proponuje najlepszy wynik.
NbClust (dane = df, odległość = „euklidesowy”, min. Nc = 2, maks. Nc = 15, metoda = „kmeans”, indeks = „wszystkie”)