Huấn luyện K-means
Giờ RDD đã sẵn sàng để huấn luyện, ở phần 2 này, bạn sẽ thử các giá trị k từ 13 đến 16 (để tiết kiệm thời gian tính toán) và dùng phương pháp elbow để chọn k phù hợp. Ý tưởng của phương pháp elbow là chạy phân cụm K-means trên tập dữ liệu với nhiều giá trị k khác nhau, tính Within Set Sum of Squared Error (WSSSE), rồi chọn k tốt nhất dựa trên điểm mà WSSSE giảm đột ngột, tức là vị trí “khuỷu tay”. Tiếp theo, bạn sẽ huấn luyện lại mô hình với k tốt nhất và cuối cùng lấy các centroid (tâm cụm).
Lưu ý: bạn đã có sẵn SparkContext sc và RDD rdd_split_int trong không gian làm việc.
Bài tập này là một phần của khóa học
Nền tảng Big Data với PySpark
Hướng dẫn bài tập
- Huấn luyện mô hình KMeans với số cụm từ 13 đến 16 và in WSSSE cho mỗi số cụm.
- Huấn luyện lại mô hình KMeans với k tốt nhất.
- Lấy các tâm cụm (centroid) của mô hình KMeans được huấn luyện với k tốt nhất.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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.____