Theo như tôi biết thì k-nghĩa là chọn ngẫu nhiên các trung tâm ban đầu. Vì họ dựa trên may mắn thuần túy, họ có thể được chọn thực sự tồi tệ. Thuật toán K-mean ++ cố gắng giải quyết vấn đề này, bằng cách trải đều các trung tâm ban đầu.
Hai thuật toán có đảm bảo kết quả giống nhau không? Hoặc có thể là các nhân tâm ban đầu được chọn kém dẫn đến một kết quả xấu, không quan trọng có bao nhiêu lần lặp lại.
Hãy nói rằng có một tập dữ liệu nhất định và một số cụm mong muốn nhất định. Chúng tôi chạy một thuật toán k-mean miễn là nó hội tụ (không di chuyển trung tâm nữa). Có một giải pháp chính xác cho vấn đề cụm này (SSE đã cho), hoặc phương tiện k sẽ tạo ra kết quả đôi khi khác nhau khi chạy lại?
Nếu có nhiều hơn một giải pháp cho một vấn đề phân cụm (tập dữ liệu đã cho, số cụm đã cho), liệu K-mean ++ có đảm bảo kết quả tốt hơn hay chỉ nhanh hơn? Tốt hơn tôi có nghĩa là SSE thấp hơn.
Lý do tôi hỏi những câu hỏi này là vì tôi đang tìm kiếm thuật toán k-mean để phân cụm một tập dữ liệu khổng lồ. Tôi đã tìm thấy một số k-nghĩa ++, nhưng cũng có một số triển khai CUDA. Như bạn đã biết CUDA đang sử dụng GPU và nó có thể chạy song song hàng trăm luồng. (Vì vậy, nó thực sự có thể tăng tốc toàn bộ quá trình). Nhưng không có triển khai CUDA nào - mà tôi đã tìm thấy cho đến nay - có khởi tạo k-nghĩa ++.
k-means picks the initial centers randomly
. Chọn các trung tâm ban đầu không phải là một phần của thuật toán k-mean. Các trung tâm có thể được chọn bất kỳ. Việc triển khai tốt các phương tiện k sẽ cung cấp một số tùy chọn cách xác định các trung tâm ban đầu (ngẫu nhiên, do người dùng xác định, điểm tối đa, v.v.)