Tính và vẽ tổng bình phương sai số
Bây giờ, bạn sẽ tính tổng bình phương sai số cho các số cụm khác nhau từ 1 đến 10.
Bạn sẽ dùng dữ liệu RFMT đã được chuẩn hóa mà bạn tạo ở bài trước, được lưu là datamart_rfmt_normalized. Mô-đun KMeans từ scikit-learn cũng đã được import. Ngoài ra, chúng tôi đã khởi tạo một dictionary trống để lưu tổng bình phương sai số là sse = {}.
Bạn cứ thoải mái khám phá dữ liệu trong bảng điều khiển (console).
Bài tập này là một phần của khóa học
Phân khúc khách hàng bằng Python
Hướng dẫn bài tập
- Khởi tạo KMeans với
kcụm và random_state = 1, rồi fit KMeans trên bộ dữ liệu đã chuẩn hóa. - Gán tổng khoảng cách bình phương vào phần tử
kcủa dictionarysse. - Thêm tiêu đề đồ thị "The Elbow Method", nhãn trục X "k", và nhãn trục Y "SSE".
- Vẽ các giá trị SSE cho từng
kđược lưu làm khóa trong dictionary.
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.
# Fit KMeans and calculate SSE for each k between 1 and 10
for k in range(1, 11):
# Initialize KMeans with k clusters and fit it
kmeans = ____(____=____, ____=1 ).____(datamart_rfmt_normalized)
# Assign sum of squared distances to k element of the sse dictionary
____[____] = kmeans.____
# Add the plot title, x and y axis labels
plt.____('The Elbow Method')
plt.____('____')
plt.____('____')
# Plot SSE values for each k stored as keys in the dictionary
sns.____(x=list(sse.____()), y=list(sse.____()))
plt.show()