Antrenarea K-means
Acum că RDD-ul este pregătit pentru antrenare, în această a 2-a parte vei testa cu valori k de la 13 la 16 (pentru a reduce timpul de calcul) și vei folosi metoda cotului pentru a alege valoarea k potrivită. Ideea metodei cotului este să rulezi clustering K-means pe setul de date pentru diferite valori k, să calculezi Suma Pătratelor Erorilor în Cadrul Setului (WSSSE) și să selectezi cel mai bun k pe baza scăderii bruște a WSSSE — adică acolo unde apare „cotul". Apoi, vei reantrena modelul cu cel mai bun k și vei obține centroizii (centrele de cluster).
Reține că ai deja un SparkContext sc și RDD-ul rdd_split_int disponibile în spațiul tău de lucru.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Antrenează modelul KMeans cu clustere de la 13 la 16 și afișează WSSSE pentru fiecare cluster.
- Antrenează din nou modelul KMeans cu cel mai bun k.
- Obține Centrele de Cluster (centroizii) ale modelului KMeans antrenat cu cel mai bun k.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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.____