Muss ich korrelierte / kollineare Variablen löschen, bevor ich kmeans laufen lasse?


13

Ich laufe Kilometer, um Kundencluster zu identifizieren. Ich habe ungefähr 100 Variablen, um Cluster zu identifizieren. Jede dieser Variablen gibt den Prozentsatz der Ausgaben eines Kunden für eine Kategorie an. Wenn ich also 100 Kategorien habe, habe ich diese 100 Variablen, sodass die Summe dieser Variablen für jeden Kunden 100% beträgt. Nun sind diese Variablen stark miteinander korreliert. Muss ich einige davon fallen lassen, um die Kollinearität zu beseitigen, bevor ich Kilometer laufen lasse?

Hier sind die Beispieldaten. In Wirklichkeit habe ich 100 Variablen und 10 Millionen Kunden.

Customer CatA CatB CatC   
1         10%  70%  20%   
2         15%  60%  25%

1
Haben Sie eine PCA-Analyse versucht, um Ihre Daten zu dekorrelieren?
Miroslav Sabo

2
"Kollinear" ist nicht ganz dasselbe wie "korreliert". So bleibt Ihre Frage unklar
ttnphns

Antworten:


9

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(10)2+(01)2+(00)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(10)2+(00)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.


1
Ich denke, dass beim Entfernen von Variablen durch PCA sehr vorsichtig vorgegangen werden muss. Zuallererst müssen die Abweichungen vor einer solchen Eliminierung normalisiert werden, da Sie Variablen falsch eliminieren können, nur weil sie aufgrund ihrer Einheiten einen unterschiedlichen Maßstab haben. Zweitens würde ich danach nur die Dimensionen eliminieren, die geringfügige Abweichungen aufweisen, da PCA eine orthogonale Basis annimmt, wenn Sie Abweichungen in einer nicht orthogonalen Richtung aufweisen, werden diese mit k-Mitteln erfasst, jedoch mit PCA eliminiert.
Cagdas Ozgenc

1
(X1,X2)1ρ>0Y=X1X2(X1,X2)X1+X2X1X2YX1+X2

1
Es ist irrelevant, in der unbeaufsichtigten Umgebung zu diskutieren. Für die überwachte Einstellung yes kümmert sich PCA nicht um die Beziehung zur Zielvariablen. Wenn die Richtung der Abhängigkeit in Richtung geringer Varianz fällt, hat Pech.
Cagdas Ozgenc

2

Bei einem Spielzeugbeispiel in 2D oder 3D sollte es keinen großen Unterschied machen, es fügt lediglich eine gewisse Redundanz zu Ihren Daten hinzu: Alle Ihre Punkte befinden sich auf einer ungeraden (d-1) dimensionalen Hyperebene. So sind die Clustermittel. Die Entfernung in dieser (d-1) dimensionalen Hyperebene ist ein lineares Vielfaches der gleichen Entfernung, sodass sich nichts ändert.

(x,y)(x,y,x+y)xy

Schauen wir uns das einfachste Beispiel an: doppelte Variablen.

Wenn Sie PCA für Ihren Datensatz ausführen und eine Variable duplizieren, bedeutet dies effektiv, dass diese Variable doppelt gewichtet wird. PCA basiert auf der Annahme, dass die Varianz in alle Richtungen gleich wichtig ist. Daher sollten Sie Variablen (unter Berücksichtigung von Korrelationen und anderen erforderlichen Vorverarbeitungen) in der Tat sorgfältig gewichten, bevor Sie PCA durchführen.


1
In Anbetracht meiner Analyse unter stats.stackexchange.com/a/50583 scheint diese Argumentation falsch zu sein.
whuber

Ich habe meine Antwort sehr verbessert, sie basierte zu sehr auf den Spielzeugbeispieldaten.
Hat aufgehört - Anony-Mousse

1

Es ist ratsam, Variablen zu entfernen, wenn sie stark korrelieren .

Unabhängig vom Clustering-Algorithmus oder der Verknüpfungsmethode müssen Sie im Allgemeinen den Abstand zwischen Punkten ermitteln. Das Beibehalten von stark korrelierten Variablen ist alles andere als das Erhöhen der Gewichtung bei der Berechnung des Abstands zwischen zwei Punkten (da alle Variablen normalisiert sind, ist der Effekt normalerweise doppelt so hoch).

Kurz gesagt, die Stärke der Variablen zur Beeinflussung der Clusterbildung nimmt zu, wenn sie eine hohe Korrelation mit einer anderen Variablen aufweist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.