Podstawy grupowania k-średnich

Analiza skupień w Pythonie

Shaumik Daityari

Business Analyst

Dlaczego grupowanie k-średnich?

  • Główna wada grupowania hierarchicznego: czas działania
  • K-średnie działa znacznie szybciej na dużych zbiorach danych
Analiza skupień w Pythonie

Krok 1: Generowanie centrów skupień

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: standaryzowane obserwacje
  • k_or_guess: liczba skupień
  • iter: liczba iteracji (domyślnie: 20)
  • thres: próg (domyślnie: 1e-05)
  • check_finite: czy sprawdzać, czy obserwacje zawierają tylko liczby skończone (domyślnie: True)

Zwraca dwa obiekty: centra skupień, dystorsję

Analiza skupień w Pythonie

Jak obliczana jest dystorsja?

Analiza skupień w Pythonie

Krok 2: Generowanie etykiet skupień

vq(obs, code_book, check_finite=True)
  • obs: standaryzowane obserwacje
  • code_book: centra skupień
  • check_finite: czy sprawdzać, czy obserwacje zawierają tylko liczby skończone (domyślnie: True)

Zwraca dwa obiekty: listę etykiet skupień i listę dystorsji

Analiza skupień w Pythonie

Uwaga dotycząca dystorsji

  • kmeans zwraca pojedynczą wartość dystorsji
  • vq zwraca listę dystorsji.
Analiza skupień w Pythonie

Uruchamianie k-średnich

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Analiza skupień w Pythonie

Analiza skupień w Pythonie

Czas na ćwiczenia!

Analiza skupień w Pythonie

Preparing Video For Download...