No descarte ninguna variable, pero considere usar PCA. Este es el por qué.
En primer lugar, como señaló Anony-mousse, k-means no se ve gravemente afectado por la colinealidad / correlaciones. No es necesario tirar información por eso.
En segundo lugar, si elimina las variables de forma incorrecta, acercará artificialmente algunas muestras. Un ejemplo:
Customer CatA CatB CatC
1 1 0 0
2 0 1 0
3 0 0 1
(Eliminé la notación% y simplemente puse valores entre 0 y 1, restringidos para que todos sumen 1.)
La distancia euclidiana entre cada uno de esos clientes en su espacio natural en 3D es ( 1 - 0 )2+ ( 0 - 1 )2+ ( 0 - 0 )2-----------------------√= 2-√
Ahora digamos que sueltas CatC.
Customer CatA CatB
1 1 0
2 0 1
3 0 0
Ahora la distancia entre los clientes 1 y 2 sigue siendo , pero entre los clientes 1 y 3, y 2 y 3, es solo √2-√( 1 - 0 )2+ ( 0 - 0 )2---------------√= 1
En tercer lugar, la colineraridad / correlaciones no son el problema. Tu dimensionalidad es. 100 variables son lo suficientemente grandes como para que incluso con 10 millones de puntos de datos, me preocupe que k-means pueda encontrar patrones espurios en los datos y se ajuste a eso. En cambio, piense en usar PCA para comprimirlo en un número de dimensiones más manejable, digamos 10 o 12 para comenzar (tal vez mucho más alto, tal vez mucho más bajo), tendrá que mirar la variación a lo largo de cada componente y jugar un poco, para encontrar el número correcto). Artificialmente acercará algunas muestras haciendo esto, sí, pero lo hará de una manera que debería preservar la mayor parte de la variación en los datos, y que eliminará preferentemente las correlaciones.
~~~~~
EDITAR:
Re, comentarios a continuación sobre PCA. Sí, absolutamente tiene patologías. Pero es bastante rápido y fácil de probar, por lo que todavía no me parece una mala apuesta si quieres reducir la dimensionalidad del problema.
Sin embargo, en esa nota, intenté lanzar rápidamente algunos conjuntos de datos sintéticos 100 dimensionales en un algoritmo k-means para ver qué se les ocurrió. Si bien las estimaciones de la posición central del grupo no eran tan precisas, la membresía del grupo (es decir, si dos muestras se asignaron al mismo grupo o no, que parece ser lo que le interesa al OP) fue mucho mejor de lo que pensé que sería. Por lo tanto, mi intuición anterior posiblemente era incorrecta: k-significa que migth funciona bien en los datos sin procesar.