Usted está haciendo la pregunta equivocada.
En lugar de preguntar "¿qué algoritmo", usted debe estar preguntándose: "¿qué es un significativo categoría/grupo en su aplicación".
No estoy sorprendido de que los algoritmos anteriores no funcionan - que están diseñados para los diferentes casos de uso. k-means qué no trabajar con arbitraria otras distancias. No lo utilice con la distancia de Hamming. Hay una razón por la que es llamado k-significa, que sólo tiene sentido para usar cuando la media aritmética es significativo (lo cual no es para datos binarios).
Puede que desee probar k-modos de lugar, si mal no recuerdo esta es una variante que es en realidad destinados a ser usados con categorial de datos, y los datos binarios es algo categorial (pero dispersión todavía puede matar).
Pero primero de todo, has eliminado los duplicados para simplificar los datos, y se retira único/columnas vacías por ejemplo?
Tal vez APRIORI o enfoques similares también son más significativos para su problema.
De cualquier manera, primero averiguar lo que usted necesita, entonces el algoritmo que pueda resolver este desafío. El trabajo impulsado por los datos, no por tratar de forma aleatoria a los algoritmos.