Ile klastrów?

Analiza skupień w Pythonie

Shaumik Daityari

Business Analyst

Jak znaleźć właściwe k?

  • Brak absolutnej metody wyznaczania optymalnego k w klastrowaniu k-means
  • Metoda łokcia

Analiza skupień w Pythonie

Dystorsja – przypomnienie

  • Dystorsja: suma kwadratów odległości punktów od centrów klastrów
  • Maleje wraz ze wzrostem liczby klastrów
  • Osiąga zero, gdy liczba klastrów równa się liczbie punktów
  • Wykres łokcia: wykres liniowy zależności dystorsji od liczby klastrów

Analiza skupień w Pythonie

Metoda łokcia

  • Wykres łokcia: zależność liczby klastrów od dystorsji
  • Pomaga określić liczbę klastrów w danych
Analiza skupień w Pythonie

Metoda łokcia w Pythonie

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Analiza skupień w Pythonie

Analiza skupień w Pythonie

Podsumowanie metody łokcia

  • Wskazuje jedynie optymalną wartość k (liczbę klastrów)
  • Nie zawsze precyzyjnie określa liczbę k (klastrów)
  • Inne metody: średnia sylwetka i statystyka przerwy
Analiza skupień w Pythonie

Czas na ćwiczenia

Analiza skupień w Pythonie

Preparing Video For Download...