Quanti cluster?

Analisi di cluster in Python

Shaumik Daityari

Business Analyst

Come trovare il k giusto?

  • Nessun metodo assoluto per trovare il numero giusto di cluster (k) nel k-means
  • Elbow method

Analisi di cluster in Python

Rivediamo la distorsione

  • Distorsione: somma dei quadrati delle distanze dei punti dai centri dei cluster
  • Diminuisce all’aumentare dei cluster
  • Diventa zero quando i cluster = numero di punti
  • Elbow plot: grafico a linee tra numero di cluster e distorsione

Analisi di cluster in Python

Elbow method

  • Elbow plot: grafico di numero di cluster e distorsione
  • Aiuta a indicare quanti cluster ci sono nei dati
Analisi di cluster in Python

Elbow method in Python

# 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()
Analisi di cluster in Python

Analisi di cluster in Python

Considerazioni finali sull’elbow method

  • Dà solo un’indicazione del k ottimale (numero di cluster)
  • Non indica sempre con precisione quanti k (numero di cluster)
  • Altri metodi: silhouette media e gap statistic
Analisi di cluster in Python

Ora: esercizi

Analisi di cluster in Python

Preparing Video For Download...