Non eliminare alcuna variabile, ma considera l'utilizzo di PCA. Ecco perché.
In primo luogo, come sottolineato da Anony-mousse, k-medie non è gravemente influenzato dalla collinearità / correlazioni. Non è necessario buttare via informazioni a causa di ciò.
In secondo luogo, se lasci cadere le variabili nel modo sbagliato, avvicinerai artificialmente alcuni campioni. Un esempio:
Customer CatA CatB CatC
1 1 0 0
2 0 1 0
3 0 0 1
(Ho rimosso la notazione% e ho appena inserito valori compresi tra 0 e 1, vincolati in modo che tutti sommino a 1.)
La distanza euclidea tra ciascuno di quei clienti nel loro spazio 3d naturale è( 1 - 0 )2+ ( 0 - 1 )2+ ( 0 - 0 )2-----------------------√= 2-√
Ora diciamo che lasci cadere CatC.
Customer CatA CatB
1 1 0
2 0 1
3 0 0
Ora la distanza tra i clienti 1 e 2 è ancora , ma tra i clienti 1 e 3 e 2 e 3, è solo . Hai reso artificialmente il cliente 3 più simile a 1 e 2, in un modo che i dati grezzi non supportano.2-√( 1 - 0 )2+ ( 0 - 0 )2---------------√= 1
In terzo luogo, la collinerarietà / correlazioni non sono il problema. La tua dimensionalità è. 100 variabili sono abbastanza grandi che anche con 10 milioni di punti dati, temo che k-mean possa trovare modelli spuri nei dati e adattarsi a quello. Invece, pensa a usare PCA per comprimerlo fino a un numero più gestibile di dimensioni - diciamo 10 o 12 per iniziare (forse molto più in alto, forse molto più in basso) dovrai guardare la varianza lungo ciascun componente e giocare un po ', per trovare il numero corretto). Avvicinerai artificialmente alcuni campioni insieme facendo questo, sì, ma lo farai in modo da preservare la maggior parte della varianza nei dati e che rimuoverà preferenzialmente le correlazioni.
~~~~~
MODIFICARE:
Ri, commenti di seguito su PCA. Sì, ha assolutamente patologie. Ma è abbastanza veloce e facile da provare, quindi non mi sembra una scommessa sbagliata se vuoi ridurre la dimensionalità del problema.
In quella nota però, ho provato a gettare rapidamente alcuni insiemi di dati sintetici a 100 dimensioni in un algoritmo k-mean per vedere cosa ne è venuto fuori. Mentre le stime della posizione centrale del cluster non erano così accurate, l' appartenenza al cluster (ovvero se due campioni fossero assegnati allo stesso cluster o meno, il che sembra essere ciò a cui l'OP è interessato) era molto meglio di quanto pensassi. Quindi il mio istinto in precedenza era molto probabilmente sbagliato - k-significa che la luce del mattino funziona bene sui dati grezzi.