Aan de slagGa gratis aan de slag

K-means trainen

Nu de RDD klaar is om te trainen, ga je in dit tweede deel testen met k-waarden van 13 tot en met 16 (om rekentijd te besparen) en de elbow-methode gebruiken om de juiste k te kiezen. Het idee achter de elbow-methode is om K-means clustering op de gegevensset uit te voeren voor verschillende k-waarden, de Within Set Sum of Squared Error (WSSSE) te berekenen en de beste k te selecteren op basis van de plotselinge daling in WSSSE, oftewel waar de “elleboog” zit. Vervolgens train je het model opnieuw met de beste k en haal je tot slot de centroids (clustercentra) op.

Onthoud: je hebt al een SparkContext sc en de RDD rdd_split_int beschikbaar in je werkruimte.

Deze oefening maakt deel uit van de cursus

Big Data Fundamentals met PySpark

Cursus bekijken

Oefeninstructies

  • Train het KMeans-model met aantallen clusters van 13 tot en met 16 en print de WSSSE voor elke cluster.
  • Train het KMeans-model opnieuw met de beste k.
  • Haal de Cluster Centers (centroids) op van het KMeans-model dat met de beste k is getraind.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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.____
Code bewerken en uitvoeren