Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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.____
Chỉnh sửa và Chạy Mã