Zacznij terazZacznij za darmo

Trening K-means

Teraz, gdy RDD jest gotowe do treningu, w tej 2. części przetestujesz je dla wartości k od 13 do 16 (aby skrócić czas obliczeń) i zastosujesz metodę łokcia, aby wybrać odpowiednie k. Idea tej metody polega na uruchomieniu algorytmu K-means dla różnych wartości k, obliczeniu sumy kwadratów błędów wewnątrz klastrów (WSSSE) i wyborze najlepszego k na podstawie nagłego spadku WSSSE – czyli w miejscu, gdzie pojawia się „łokieć". Następnie ponownie wytrenojesz model z najlepszym k i wyznaczysz centroidy (centra klastrów).

Pamiętaj, że w swoim środowisku pracy masz już dostępny SparkContext sc oraz RDD rdd_split_int.

To ćwiczenie jest częścią kursu

Podstawy Big Data z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Wytrenuj model KMeans dla liczby klastrów od 13 do 16 i wyświetl wartość WSSSE dla każdej z nich.
  • Wytrenuj model KMeans ponownie, używając najlepszego k.
  • Wyznacz centra klastrów (centroidy) modelu KMeans wytrenowanego z najlepszym k.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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.____
Edytuj i uruchom kod