Não descarte nenhuma variável, mas considere usar o PCA. Aqui está o porquê.
Em primeiro lugar, como apontado por Anony-mousse, o k-means não é muito afetado por colinearidade / correlações. Você não precisa jogar fora as informações por causa disso.
Em segundo lugar, se você soltar suas variáveis da maneira errada, artificialmente aproximará algumas amostras. Um exemplo:
Customer CatA CatB CatC
1 1 0 0
2 0 1 0
3 0 0 1
(Eu removi a notação% e apenas coloquei valores entre 0 e 1, restritos para que todos somam 1.)
(1−0)2+(0−1)2+(0−0)2−−−−−−−−−−−−−−−−−−−−−−−√=2–√
Agora, digamos que você largue o CatC.
Customer CatA CatB
1 1 0
2 0 1
3 0 0
2–√(1−0)2+(0−0)2−−−−−−−−−−−−−−−√=1 . Você artificialmente tornou o cliente 3 mais parecido com o 1 e o 2, de uma forma que os dados brutos não suportam.
Em terceiro lugar, a colineraridade / correlações não são o problema. Sua dimensionalidade é. 100 variáveis é grande o suficiente para que, mesmo com 10 milhões de pontos de dados, eu me preocupo que o k-means possa encontrar padrões espúrios nos dados e se ajuste a isso. Em vez disso, pense em usar o PCA para compactá-lo para um número mais gerenciável de dimensões - digamos 10 ou 12 para começar (talvez muito mais alto, talvez muito mais baixo - você terá que observar a variação ao longo de cada componente e brincar com ele. um pouco, para encontrar o número correto). Você artificialmente aproximará algumas amostras, sim, mas de maneira a preservar a maior parte da variação nos dados e que preferencialmente removerá correlações.
~~~~~
EDITAR:
Re, comentários abaixo sobre PCA. Sim, absolutamente tem patologias. Mas é bem rápido e fácil de tentar, então ainda não me parece uma aposta ruim se você deseja reduzir a dimensionalidade do problema.
Nessa nota, porém, tentei lançar rapidamente alguns conjuntos de 100 dados sintéticos dimensionais em um algoritmo k-means para ver o que eles criaram. Embora as estimativas de posição central do cluster não sejam tão precisas, a participação no cluster (ou seja, se duas amostras foram atribuídas ao mesmo cluster ou não, o que parece ser o que o OP está interessado) foi muito melhor do que eu pensava. Portanto, meu pressentimento anteriormente estava possivelmente errado - o trabalho de migração do k-significa muito bem nos dados brutos.