Löschen Sie keine Variablen, aber ziehen Sie die Verwendung von PCA in Betracht. Hier ist der Grund.
Erstens wird k-means, wie von Anony-mousse hervorgehoben, nicht stark von Kollinearität / Korrelationen beeinflusst. Sie müssen deshalb keine Informationen wegwerfen.
Zweitens, wenn Sie Ihre Variablen falsch ablegen, bringen Sie einige Beispiele künstlich näher zusammen. Ein Beispiel:
Customer CatA CatB CatC
1 1 0 0
2 0 1 0
3 0 0 1
(Ich habe die% -Notation entfernt und nur Werte zwischen 0 und 1 eingegeben, eingeschränkt, damit alle auf 1 summieren.)
Die euklidische Distanz zwischen jedem dieser Kunden in ihrem natürlichen 3D-Raum beträgt(1−0)2+(0−1)2+(0−0)2−−−−−−−−−−−−−−−−−−−−−−−√=2–√
Nehmen wir jetzt an, Sie lassen CatC fallen.
Customer CatA CatB
1 1 0
2 0 1
3 0 0
Jetzt ist die Entfernung zwischen Kunden 1 und 2 immer noch , aber zwischen Kunden 1 und 3 und 2 und 3 ist es nur . Sie haben Kunde 3 künstlich ähnlicher zu 1 und 2 gemacht, so dass die Rohdaten dies nicht unterstützen.2–√(1−0)2+(0−0)2−−−−−−−−−−−−−−−√=1
Drittens sind Kollinerarität / Korrelationen nicht das Problem. Deine Dimensionalität ist. 100 Variablen sind groß genug, um selbst bei 10 Millionen Datenpunkten zu befürchten, dass k-means möglicherweise falsche Muster in den Daten findet und zu diesen passt. Denken Sie stattdessen daran, PCA zu verwenden, um es auf eine handlichere Anzahl von Dimensionen zu komprimieren - sagen wir 10 oder 12, um zu beginnen (möglicherweise viel höher, möglicherweise viel niedriger). Sie müssen sich die Varianz entlang jeder Komponente ansehen und herumspielen ein bisschen, um die richtige Nummer zu finden). Sie werden auf diese Weise einige Beispiele künstlich näher zusammenbringen, aber dies auf eine Weise, die den größten Teil der Varianz in den Daten bewahrt und Korrelationen bevorzugt entfernt.
~~~~~
BEARBEITEN:
Re, Kommentare über PCA unten. Ja, es hat absolut Pathologien. Aber es ist ziemlich schnell und einfach zu versuchen, daher scheint es mir immer noch keine schlechte Wette zu sein, wenn Sie die Dimensionalität des Problems reduzieren möchten.
In diesem Sinne habe ich versucht, schnell ein paar Sätze von 100-dimensionalen synthetischen Daten in einen k-means-Algorithmus zu werfen, um zu sehen, was dabei herausgekommen ist. Während die Schätzungen der Cluster-Center-Position nicht so genau waren, war die Cluster- Zugehörigkeit (dh, ob zwei Stichproben demselben Cluster zugewiesen wurden oder nicht, woran das OP offenbar interessiert ist) viel besser als ich dachte. Mein früheres Bauchgefühl war also möglicherweise falsch - k-means migth funktioniert einwandfrei mit den Rohdaten.