Addestramento K-means
Ora che l'RDD è pronto per l'addestramento, in questa seconda parte lo testerai con valori di k da 13 a 16 (per risparmiare tempo di calcolo) e userai il metodo elbow per scegliere il k corretto. L'idea dell'elbow method è eseguire il clustering K-means sull'insieme di dati per diversi valori di k, calcolare la Within Set Sum of Squared Error (WSSSE) e selezionare il k migliore in base al calo improvviso della WSSSE, cioè dove si forma il “gomito”. Poi riaddestrerai il modello con il k migliore e, infine, otterrai i centroidi (centri dei cluster).
Ricorda: nel tuo workspace hai già a disposizione uno SparkContext sc e l'RDD rdd_split_int.
Questo esercizio fa parte del corso
Fondamenti di Big Data con PySpark
Istruzioni dell'esercizio
- Addestra il modello KMeans con un numero di cluster da 13 a 16 e stampa la WSSSE per ciascun cluster.
- Addestra di nuovo il modello KMeans con il k migliore.
- Ottieni i centri dei cluster (centroidi) del modello KMeans addestrato con il k migliore.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Train the model with clusters from 13 to 16 and compute WSSSE
for clst in range(13, 17):
model = KMeans.____(rdd_split_int, clst, seed=1)
WSSSE = rdd_split_int.____(lambda point: error(point)).reduce(lambda x, y: x + y)
print("The cluster {} has Within Set Sum of Squared Error {}".format(clst, ____))
# Train the model again with the best k
model = KMeans.train(rdd_split_int, k=____, seed=1)
# Get cluster centers
cluster_centers = model.____