k- means

Metoda k-średnich (ang. K-means) to algorytm klasteryzacji polegający na podziale danych na k grupy tak, aby obiekty w ramach jednej grupy były podobne, a obiekty z różnych grup były od siebie odmienne. Algorytm działa następująco:

  1. Losowo wybiera się k punktów jako centroidy grup.
  2. Każdy obiekt zostaje przypisany do najbliższego centroidu.
  3. Dla każdej grupy oblicza się nową średnią (centroid) na podstawie przypisanych do niej obiektów.
  4. Powtarza się kroki 2 i 3, aż do osiągnięcia stabilności (tzn. aż centroidy nie ulegną już zmianie).

Metoda k-średnich jest często stosowana, ponieważ jest prosta w implementacji i daje dobre wyniki dla dużych zbiorów danych. Ma jednak kilka ograniczeń:

  • Potrzebuje z góry zadanej liczby grup, co może być trudne do określenia.
  • Może działać słabo dla danych o nieregularnym kształcie lub z dużą ilością szumu.
  • Może działać suboptymalnie dla danych o różnych rozmiarach i gęstościach.
  • Może działać słabo dla danych z dużą liczbą kategorii.

Mimo tych ograniczeń, metoda k-średnich jest szeroko stosowana w różnych dziedzinach, takich jak biznes, nauka, technologia i marketing. Może być używana do wyznaczania trendów w danych, segmentacji rynku lub do wyodrębnienia grup o podobnych cechach.

Przykład:

# importujemy potrzebne biblioteki
from sklearn.cluster import KMeans
import pandas as pd

# wczytujemy dane
data = pd.read_csv('customer_data.csv')

# wybieramy potrzebne nam kolumny
X = data[['age', 'income', 'spend']]

# tworzymy model KMeans
kmeans = KMeans(n_clusters=4)

# trenujemy model
kmeans.fit(X)

# przypisujemy każdy obiekt do odpowiedniego klastra
predictions = kmeans.predict(X)

# dodajemy kolumnę z przypisanym klastrem do oryginalnego zbioru danych
data['cluster'] = predictions

# wyświetlamy pierwszych kilka wierszy po dodaniu kolumny cluster
data.head()

Wynik:

wiekdochódwydatkigrupa
346000060003
483500025001
286000055003
6290000110004
374000065002

W powyższym przykładzie wczytaliśmy dane o klientach ze zbioru customer_data.csv, wybraliśmy trzy kolumny zawierające informacje o wieku, dochodach i wydatkach klientów i przeprowadziliśmy klasteryzację metodą k-średnich z 4 klastrami. Następnie przypisaliśmy każdemu klientowi odpowiedni klaster i doliczyliśmy tę informację do oryginalnych danych.