Bạn đang hỏi sai câu hỏi.
Thay vì hỏi "thuật toán nào", bạn nên hỏi " danh mục / cụm có ý nghĩa trong ứng dụng của bạn là gì".
Tôi không ngạc nhiên khi các thuật toán trên không hoạt động - chúng được thiết kế cho các trường hợp sử dụng rất khác nhau. k-nghĩa là không hoạt động với các khoảng cách khác tùy ý. Đừng sử dụng nó với khoảng cách Hamming. Có một lý do tại sao nó được gọi là k- nghĩa là , nó chỉ có ý nghĩa khi sử dụng khi trung bình số học có ý nghĩa (mà nó không dành cho dữ liệu nhị phân).
Thay vào đó, bạn có thể muốn thử các chế độ k, IIRC đây là một biến thể thực sự được sử dụng với dữ liệu phân loại và dữ liệu nhị phân có phần phân loại (nhưng sự thưa thớt vẫn có thể giết chết bạn).
Nhưng trước hết, bạn đã loại bỏ các bản sao để đơn giản hóa dữ liệu của mình và xóa các cột duy nhất / trống chẳng hạn?
Có thể APRIORI hoặc các cách tiếp cận tương tự cũng có ý nghĩa hơn đối với vấn đề của bạn.
Dù bằng cách nào, trước tiên hãy tìm ra những gì bạn cần, sau đó thuật toán nào có thể giải quyết thách thức này. Làm việc dựa trên dữ liệu , không phải bằng cách thử các thuật toán ngẫu nhiên.