K-means

Czym jest K-means?

K-means to popularny algorytm grupowania, który dzieli dane na \(k\) klastrów na podstawie podobieństwa między punktami. Algorytm iteracyjnie przypisuje punkty do najbliższego centroidu (środka klastra) i aktualizuje położenie centroidów, aż do osiągnięcia stabilności.

Kluczowe pojęcia:

  1. Centroid:

    • Punkt reprezentujący środek klastra. Jest obliczany jako średnia wszystkich punktów w klastrze.
  2. Klastry:

    • Grupy punktów, które są bardziej podobne do swojego centroidu niż do innych centroidów.
  3. Liczba klastrów (\(k\)):

    • Liczba grup, na które dane mają zostać podzielone. Wartość \(k\) musi być określona przed uruchomieniem algorytmu.
  4. Funkcja celu:

    • Algorytm dąży do minimalizacji sumy kwadratów odległości punktów od ich centroidów: \[ J = \sum_{i=1}^{k} \sum_{x \in C_i} ||x - \mu_i||^2 \] Gdzie \(C_i\) to klaster \(i\), \(x\) to punkt w klastrze, a \(\mu_i\) to centroid klastra \(i\).

Jak działa K-means?

  1. Inicjalizacja:

    • Wybór \(k\) początkowych centroidów (np. losowo lub przy użyciu metody K-means++).
  2. Przypisanie punktów do klastrów:

    • Każdy punkt danych jest przypisywany do najbliższego centroidu na podstawie wybranej miary odległości (np. odległości euklidesowej).
  3. Aktualizacja centroidów:

    • Dla każdego klastra obliczany jest nowy centroid jako średnia wszystkich punktów w tym klastrze.
  4. Sprawdzenie zbieżności:

    • Proces powtarza się, aż centroidy przestaną się zmieniać lub osiągnięty zostanie maksymalny liczba iteracji.

Zalety K-means:

Wady K-means:

Zastosowania:

  1. Segmentacja klientów:
    • Grupowanie klientów na podstawie ich zachowań zakupowych lub cech demograficznych.
  2. Przetwarzanie obrazu:
    • Kompresja obrazu przez redukcję liczby kolorów (grupowanie pikseli o podobnych wartościach).
  3. Bioinformatyka:
    • Grupowanie danych genetycznych w celu identyfikacji podobnych wzorców.
  4. Analiza dokumentów:
    • Grupowanie tekstów na podstawie podobieństw treści.

Przykład działania:

Załóżmy, że mamy zbiór punktów w 2D:

Kroki:

  1. Inicjalizacja:

    • Losowy wybór początkowych centroidów, np. \((1, 1)\) i \((5, 4)\).
  2. Przypisanie punktów do klastrów:

    • Punkt \((1, 1)\) jest bliższy centroidowi \((1, 1)\), a punkt \((5, 4)\) jest bliższy centroidowi \((5, 4)\).
  3. Aktualizacja centroidów:

    • Obliczane są nowe centroidy na podstawie średnich punktów w każdym klastrze, np. \((1.5, 1)\) i \((4.5, 3.5)\).
  4. Powtarzanie iteracji:

    • Proces jest kontynuowany, aż centroidy przestaną się zmieniać.

Wynikiem jest podział punktów na dwa klastry, które najlepiej reprezentują dane.

K-means to jedno z najprostszych i najczęściej używanych narzędzi grupowania, szczególnie w zastosowaniach wymagających szybkiego i efektywnego podziału danych.