Ви ставите неправильне запитання.
Замість того, щоб запитувати "який алгоритм", ви повинні запитувати "що є змістовною категорією / кластером у вашій програмі".
Я не дивуюсь, що вищезгадані алгоритми не спрацювали - вони розроблені для дуже різних випадків використання. k-засоби не працюють з довільними іншими відстанями. Не використовуйте його з дистанцією Хеммінга. Існує причина, чому його називають k- означає , це має сенс використовувати лише тоді, коли середнє арифметичне є значимим (чого це не стосується двійкових даних).
Ви можете замість цього спробувати k-режими, IIRC. Це варіант, який насправді призначений для використання з категоріальними даними, а двійкові дані дещо категоричні (але розрідження все одно може вбити вас).
Перш за все, ви видалили дублікати, щоб спростити свої дані, і видалили унікальні / порожні стовпці, наприклад?
Можливо, APRIORI або подібні підходи також мають більш важливе значення для вашої проблеми.
У будь-якому випадку спочатку з’ясуйте, що вам потрібно, а потім який алгоритм може вирішити цю проблему. Працюйте на основі даних , а не випробовуючи випадкові алгоритми.