Anda mengajukan pertanyaan yang salah.
Alih-alih bertanya "algoritma apa", Anda harus bertanya "apa kategori / klaster yang berarti dalam aplikasi Anda".
Saya tidak terkejut bahwa algoritma di atas tidak berfungsi - mereka dirancang untuk kasus penggunaan yang sangat berbeda. k-means tidak bekerja dengan jarak lain yang berubah-ubah. Jangan gunakan dengan jarak Hamming. Ada alasan mengapa ini disebut k- means , itu hanya masuk akal untuk digunakan ketika rata- rata aritmatika bermakna (yang bukan untuk data biner).
Anda mungkin ingin mencoba k-mode sebagai gantinya, IIRC ini adalah varian yang sebenarnya dimaksudkan untuk digunakan dengan data kategororial, dan data biner agak kategororial (tetapi sparsity mungkin masih membunuh Anda).
Tapi pertama-tama, sudahkah Anda menghapus duplikat untuk menyederhanakan data Anda, dan menghapus kolom unik / kosong misalnya?
Mungkin APRIORI atau pendekatan serupa juga lebih berarti untuk masalah Anda.
Either way, pertama cari tahu apa yang Anda butuhkan, lalu algoritma mana yang bisa menyelesaikan tantangan ini. Bekerja berdasarkan data , bukan dengan mencoba algoritma acak.