Sind eine mittlere Normalisierung und Merkmalsskalierung für k-Means-Clustering erforderlich?

Antworten:

63

Wenn Ihre Variablen unvergleichliche Einheiten haben (z. B. Größe in cm und Gewicht in kg), sollten Sie natürlich die Variablen standardisieren. Auch wenn Variablen die gleichen Einheiten haben, aber sehr unterschiedliche Varianzen aufweisen, ist es immer noch eine gute Idee, vor K-means zu standardisieren. Wie Sie sehen, ist die K-Mittelwert-Clusterbildung in allen Raumrichtungen "isotrop" und führt daher eher zu mehr oder weniger runden (als zu länglichen) Clustern. In dieser Situation bedeutet die Ungleichheit von Varianzen, dass Variablen mit geringerer Varianz stärker gewichtet werden, sodass Cluster tendenziell entlang von Variablen mit größerer Varianz getrennt werden.

Bildbeschreibung hier eingeben

Eine andere Sache, an die wir erinnern sollten, ist, dass die Ergebnisse von K-Means-Clustern möglicherweise von der Reihenfolge der Objekte im Datensatz . Eine berechtigte Praxis wäre es, die Analyse mehrmals durchzuführen und die Reihenfolge der Objekte zufällig zu bestimmen. Dann werden die Clusterzentren dieser Läufe gemittelt und die Zentren als Anfangszentren für einen letzten Lauf der Analyse eingegeben.1

Hier einige allgemeine Überlegungen zum Thema der Standardisierung von Features in Cluster- oder anderen multivariaten Analysen.


1 Insbesondere (1) sind einige Methoden der Zentrumsinitialisierung abhängig von der Reihenfolge der Fälle. (2) Selbst wenn die Initialisierungsmethode nicht sensitiv ist, können die Ergebnisse manchmal von der Reihenfolge abhängen, in der die anfänglichen Zentren in das Programm eingeführt werden (insbesondere wenn gebundene, gleiche Abstände innerhalb der Daten vorhanden sind). (3) Die so genannte Running -Mean- Version des k-means-Algorithmus ist naturgemäß abhängig von der Reihenfolge der Fälle (in dieser Version - abgesehen von Online-Clustering - erfolgt die Neuberechnung der Zentroide nach der Neuzuweisung jedes einzelnen Falls ein anderes Cluster).

ttnphns
quelle
2
Das Randomisieren, erneute Ausführen, Mitteln und endgültige Ausführen ist ein sehr guter Rat. Danke
pedrosaurio
1
Wie empfindlich würde k-means auf Bestellungen reagieren?
SmallChess
1
@StudentT, dazu habe ich eine Fußnote hinzugefügt. Danke.
TTNPHNS
1
@ttnphns wie kann man quantitativ feststellen, dass Variablen "ganz unterschiedliche Varianzen" haben?
Herman Toothrot
1
@camillejr, überprüfen Sie zunächst diese Frage : stats.stackexchange.com/q/418427/3277 .
TTNPHNS
4

Kommt auf deine Daten an, denke ich. Wenn Sie möchten, dass sich Trends in Ihren Daten unabhängig von der Größe zusammenballen, sollten Sie sie zentrieren. z.B. Angenommen, Sie haben ein gewisses Genexpressionsprofil und möchten Trends in der Genexpression sehen. Ohne eine mittlere Zentrierung werden sich Ihre Gene mit niedriger Expression unabhängig von Trends zusammenlagern und von Genen mit hoher Expression entfernen. Durch die Zentrierung werden Gene (sowohl hoch als auch niedrig exprimiert) mit ähnlichen Expressionsmustern zusammengeballt.

Nachtschreiber
quelle
Ich vergleiche tatsächlich verschiedene Funktionen, die ihren eigenen Maßstab haben. Zum Beispiel vergleiche ich den GC-Gehalt, der einen Bereich von etwa 0,3 bis 0,5 hat, was vielleicht klein zu sein scheint, aber der Unterschied ist ziemlich wichtig; Einige andere Merkmale haben einen größeren Bereich, andere einen sehr kleinen Bereich.
Pedrosaurio
Sie bündeln also verschiedene Faktoren? Könnte vielleicht eine Gewichtung oder Transformation von Werten verwenden.
Nightwriter
Nein, ich vergleiche alle stetigen Variablen
pedrosaurio