Phân cụm K-means
KhóAIhọc không giám sátphân cụm4 test · 12 giây · sai số 1e-5
Chạy thuật toán K-means đúng iters vòng, bắt đầu từ các tâm cụm centers. Mỗi vòng:
1. Gán mỗi điểm vào tâm gần nhất (khoảng cách Euclid; bằng nhau thì chọn tâm có chỉ số nhỏ hơn).
2. Cập nhật mỗi tâm = trung bình các điểm thuộc cụm đó. Cụm rỗng thì giữ nguyên tâm cũ.
Trả về các tâm sau cùng.
Viết hàm
kmeans(X, centers, iters)Tham số
X: ma trận điểm (n, d)centers: tâm khởi tạo (k, d)iters: số vòng lặp
Trả về
Ma trận (k, d).
Ví dụ
Tham số
X = [[0,0],[0,1],[10,10],[10,11]] centers = [[0,0],[10,10]] iters = 1
Kết quả
[[0.0,0.5],[10.0,10.5]]
Hai cụm rõ ràng
Tham số
X = [[1],[2],[3]] centers = [[100],[2]] iters = 3
Kết quả
[[100.0],[2.0]]
Tâm [100] không có điểm nào → giữ nguyên
Bài tiếp theo: Lan truyền ngược qua lớp tuyến tính →
Python · NumPy
Bấm “Chạy thử” để gọi kmeans() với 2 ví dụ trong đề và so sánh kết quả. Dùng print() thoải mái để gỡ lỗi.