Podejście, które daje bardziej spójne wyniki, to K-znaczy ++ . Podejście to potwierdza, że prawdopodobnie jest lepszy wybór początkowych lokalizacji środka ciężkości niż proste losowe przypisanie. Konkretnie, środki K mają tendencję do osiągania lepszych wyników, gdy centroidy są zaszczepione w taki sposób, że nie zlepiają ich w przestrzeni.
Krótko mówiąc, metoda jest następująca:
- Wybierz jeden z losowych punktów danych jako początkową centroid.
- Oblicz , odległość między początkową centroidem a wszystkimi innymi punktami danych, .D ( x )x
- Wybierz następny środek ciężkości spośród pozostałych punktów danych z prawdopodobieństwem proporcjonalnym doD ( x )2)
- Powtarzaj, aż wszystkie centroidy zostaną przypisane.
Uwaga: należy aktualizować wraz z dodawaniem kolejnych centroidów. Powinien być ustawiony jako odległość między punktem danych a najbliższym środkiem ciężkości.D ( x )
Być może zainteresuje Cię również ten artykuł, w którym zaproponowano metodę i opisano jej ogólną oczekiwaną wydajność.
Zwykle podejście do tego problemu polega na kilkakrotnym ponownym uruchomieniu algorytmu K-średnich, z różnymi losowymi inicjalizacjami centrroidów i utrzymaniu najlepszego rozwiązania. Możesz to zrobić, oceniając wyniki na danych treningowych lub poprzez wzajemną weryfikację.
Istnieje wiele innych sposobów inicjalizacji centroidów, ale żaden z nich nie będzie działał najlepiej w przypadku każdego problemu. Możesz ocenić te podejścia wraz z losową inicjalizacją konkretnego problemu.
źródło
Zgadzam się z fabułą Elbow / Scree. Uznałem to za bardziej intuicyjnie sensowne niż przypadkowe nasiona. Oto przykładowy kod, aby go wypróbować.
źródło