Plot del dataframe completo:
Plot del dataframe senza duplicati:
Voglio valutare il numero di cluster esaminando il grafico dell’elbow method utilizzando il K-Means e il K-Means++.
I parametri del Kmeans sono:
#valori unici
distrotions = []
for i in range(1,11):
km = KMeans(n_clusters=i, init='random', n_init=10, max_iter=300, random_state=0)
km.fit(np.nan_to_num(df1))
distrotions.append(km.inertia_)
plt.plot(range(1,11), distrotions, marker='o')
plt.title("Elbow K-Means")
plt.xlabel('Number Clusters')
plt.ylabel('Distortions')
plt.show()
I parametri del Kmeans++ sono:
distrotions = []
for i in range(1,11):
km = KMeans(n_clusters=i, init='k-means++', n_init=10, max_iter=300, random_state=0)
km.fit(np.nan_to_num(df1))
distrotions.append(km.inertia_)
plt.plot(range(1,11), distrotions, marker='o')
plt.title("Elobow K-Means++")
plt.xlabel('Number Clusters')
plt.ylabel('Distortions')
plt.show()
Grafici:
Elbow Kmeans data frame completo
Elbow Kmeans++ data frame completo
Eseguiamo gli stessi algoritmi per il dataframe con i valori unici:
Elbow Kmeans data frame con valori non duplicati
Elbow Kmeans++ data frame con valori non duplicati
Da entrmabi i grafici sembrerebbe che il numero migliore di cluster sia 4.
Grafico dei cluster con centroidi:
Un altro metodo per verificare i centrodi migliori è la silhouette analysis. (N.B. questa analisi è applicabile solamente per il dataframe con valori unici. Il dtaframe originale è troppo grande)
Il valore ricavato dalla Silhouette analysis è una misura di quanto i samples sono strettamente raggruppati. La misura varia tra −1 e +1. Un alto valore indica che gli oggetti in quel cluster sono rappresentativi e non hanno match con i cluster vicini. Se la maggior parte dei samples ha valori alti allora la configurazione dei cluster è buona.
La Silhouette analysis è stata eseguita per 6 cluster:
I l’average della Silhouette measure per ogni cluster è la seguente:
Grafici (la dotted line rappresenta l’average della misura):
Dai grafici sembrebbe che la migliore configurazione dei cluster è quella con 3 centroidi.
Grafico cluster: