Warum sind gemischte Daten ein Problem für euklidische Clustering-Algorithmen?


21

Die meisten klassischen Algorithmen für Clustering und Dimensionsreduktion (hierarchisches Clustering, Hauptkomponentenanalyse, k-Means, selbstorganisierende Karten ...) wurden speziell für numerische Daten entwickelt und ihre Eingabedaten werden als Punkte in einem euklidischen Raum betrachtet.

Dies ist natürlich ein Problem, da es sich bei vielen Fragen aus der Praxis um gemischte Daten handelt: Wenn wir beispielsweise Busse untersuchen, sind Höhe, Länge und Motorgröße Zahlen, es könnte aber auch die Farbe von Interesse sein (kategoriale Variable: blau) / rot / grün ...) und Kapazitätsklassen (bestellte Variable: kleine / mittlere / große Kapazität). Insbesondere möchten wir diese verschiedenen Arten von Variablen möglicherweise gleichzeitig untersuchen.

Es gibt eine Reihe von Methoden, um klassische Clustering-Algorithmen auf gemischte Daten zu erweitern, z. B. mithilfe einer Gower-Unähnlichkeit, um hierarchische Clustering- oder mehrdimensionale Skalierungsmethoden zu verwenden, oder mithilfe anderer Methoden, die eine Distanzmatrix als Eingabe verwenden. Oder zum Beispiel diese Methode, eine Erweiterung von SOM auf gemischte Daten.

Meine Frage ist: Warum können wir nicht einfach den euklidischen Abstand für gemischte Variablen verwenden? oder warum ist es schlecht so zu tun? Warum können wir nicht einfach Dummy-kodieren die kategorische Variablen, normalisieren alle Variablen , so dass sie ein ähnliches Gewicht im Abstand zwischen Beobachtungen haben, und die üblichen algos auf diesen Matrizen laufen?

Es ist wirklich einfach und nie getan, also denke ich, dass es sehr falsch ist, aber kann mir jemand sagen, warum? Und / oder gib mir ein paar refs? Vielen Dank


5
Sie können mit Ihren Daten alles tun, was Sie möchten, um sie als Punkte im euklidischen Raum darzustellen, aber die Bedeutung von Features geht möglicherweise verloren. Das Problem liegt auf der Ebene der Messskala, nicht auf der Ebene des Raums. Ordnungsskala sollte richtig quantifiziert werden, Dummy-Codierung hilft nicht. Die binäre Skala des asymmetrischen Sinns (vorhanden oder nicht vorhanden) erfordert natürlich eine andere Entfernungsmetrik als die euklidische Entfernung. plus das Problem der Interpolation (zwischen ja und nein kann kein substantieller Mittelwert existieren).
TTNPHNS

(Fortsetzung) Im euklidischen Raum geht es um zwei Dinge: Er ist kontinuierlich (feinkörnig) und lässt alle Richtungen zu. Nicht alle Datentypen erfordern oder begrüßen einen solchen Platz, um Ungleichheiten auszugleichen, die sich aus der Art der Daten ergeben.
TTNPHNS

Hierarchisches Clustering funktioniert übrigens mit jeder Art von Ähnlichkeit. (mit Ausnahme einiger Fälle wie Ward) - Sie können insbesondere den Jaccard-Koeffizienten verwenden, der für einige kategoriale / binäre Fälle von Bedeutung ist.
Anony-Mousse

Antworten:


5

Es geht nicht darum, etwas nicht berechnen zu können .

Entfernungen werden oft verwendet, um etwas Sinnvolles zu messen . Bei kategorialen Daten schlägt dies viel früher fehl. Wenn es jemals mit mehr als einer Variablen funktioniert, ist das ...

Wenn Sie die Attribute Schuhgröße und Körpermasse haben, macht der euklidische Abstand auch nicht viel Sinn. Es ist gut, wenn x, y, z Entfernungen sind. Dann ist die euklidische Entfernung die Sichtlinienentfernung zwischen den Punkten.

Nun, wenn Sie Variablen Dummy-kodieren, welche Bedeutung ergibt dies?

Außerdem macht die euklidische Distanz keinen Sinn, wenn Ihre Daten diskret sind.

Wenn nur ganzzahlige x- und y-Werte vorhanden sind, liefert der euklidische Abstand immer noch nicht ganzzahlige Abstände. Sie werden nicht auf die Daten zurück abgebildet. In ähnlicher Weise wird bei Dummy-codierten Variablen die Entfernung nicht auf eine Anzahl von Dummy-Variablen zurückgeführt ...

Wenn Sie dann planen, z. B. k-Means-Clustering zu verwenden, geht es nicht nur um Entfernungen, sondern um die Berechnung des Mittelwerts . Aber es gibt keinen vernünftigen Mittelwert für Dummy-codierte Variablen, oder?

Schließlich gibt es den Fluch der Dimensionalität . Es ist bekannt, dass sich der euklidische Abstand verschlechtert, wenn Sie die Anzahl der Variablen erhöhen. Das Hinzufügen von Dummy-codierten Variablen bedeutet, dass Sie den Distanzkontrast ziemlich schnell verlieren. Alles ist so ähnlich wie alles andere, denn eine einzige Dummy-Variable kann den Unterschied ausmachen.


3

Das Herzstück dieser metrikbasierten Clusterprobleme ist die Idee der Interpolation.

Nehmen Sie die Methode, die Sie gerade zitiert haben, und lassen Sie uns eine kontinuierliche Variable wie das Gewicht betrachten. Sie haben 100 kg und Sie haben 10 kg in Ihren Daten. Wenn Sie ein neues Gewicht von 99 kg sehen, können Sie sich mit der Metrik 100 kg nähern - auch wenn Sie es noch nie gesehen haben. Leider gibt es keine Interpolation für diskrete Daten.

Ein weiteres Argument für diese Frage ist, dass es keinen natürlichen Weg gibt, dies zu tun. Sie möchten 3 Werte in R zuweisen und sie auf gleichen Abstand zwischen jedem Paar einstellen, dies wäre unmöglich. Wenn Sie sie in verschiedene Kategorien einteilen und PCA ausführen, verlieren Sie die Information, dass sie tatsächlich dieselbe Kategorie widerspiegeln.


1
Vielen Dank! Ich verstehe das Interpolationsproblem, aber in vielen Anwendungen ist dies kein Problem (z. B. wenn wir wissen, dass Busse entweder grün, rot oder blau sind und keine andere Farbe in unserem Datensatz vorhanden ist). Und ich denke, es gibt einfache Möglichkeiten, die Dummy-Variablen so zu standardisieren, dass jede kategoriale Variable eine ähnliche "Gewichtung" wie jede numerische Variable hat (wenn die numerischen Variablen zuvor auch standardisiert wurden). Oder um den verschiedenen Variablen willkürlich Gewichte zuzuweisen ...
jubo 29.10.14

0

Ein Problem mit ungeordneten kategorialen Werten besteht darin, dass Sie beim Dummy-Codieren eine Reihenfolge und damit eine neue Bedeutung für die Variablen erzwingen. Wenn Sie beispielsweise Blau als 1 und Orange als 2 und Grün als 3 codieren, bedeutet dies, dass ein Datenmuster mit einem Orange-Wert einem Muster mit einem Grün-Wert näher kommt als dem mit dem Blau-Wert.

Eine Möglichkeit, damit umzugehen, besteht darin, sie zu neuen Features (Spalten) zu machen. Für jeden einzelnen Wert erstellen Sie ein neues Binär-Feature und setzen es auf true / false (dh, Sie codieren die Werte binär und machen jedes Bit zu einer Spalte). Für jedes Datenmuster aus diesem neuen Satz von Features hat nur ein Feature den Wert 1 und alle anderen 0. Dies stoppt jedoch normalerweise nicht den Trainingsalgorithmus, um mehr als einem Feature Schwerpunktwerte nahe 1 zuzuweisen. Dieser Vorgang kann zu Interpretationsproblemen führen, da dies in der Datendomäne keinen Sinn ergibt.

Sie haben nicht das gleiche Problem mit "Kapazitätsklassen", nämlich geordneten Kategorien, da in diesem Fall die numerische Wertzuweisung Sinn macht.

Und wenn Sie natürlich Merkmale unterschiedlicher Art oder Maßeinheit oder unterschiedlichen Wertebereichs verwenden, sollten Sie die Werte immer normalisieren.

/programming/19507928/growing-self-organizing-map-for-mixed-type-data/19511894#19511894

/programming/13687256/is-it-right-to-normalize-data-and-or-weight-vectors-in-a-som/13693409#13693409


Das habe ich mit "Dummy-Codierung" für kategoriale Variablen gemeint, aber danke. Und außerdem stimme ich Ihrer Aussage über geordnete Faktoren ("Kapazitätsklassen") nicht zu, da es keine Möglichkeit gibt, zwischen z. (1,2,3) oder (1,2,100), was für einen entfernungsbasierten Algorithmus einen großen Unterschied bedeuten würde.
3.

0

Die Antwort ist eigentlich ganz einfach: Wir müssen nur verstehen, was die Informationen in einer Dummy-Variablen wirklich sind. Die Idee einer Dummy-Variablen bezeichnet das Vorhandensein oder Fehlen von Faktorstufen (diskrete Werte einer kategorialen Variablen). Es soll etwas darstellen, das nicht messbar und nicht quantifizierbar ist, indem die Informationen darüber gespeichert werden, ob es vorhanden ist oder nicht. Aus diesem Grund wird eine Dummy-Variable in Binärziffern ausgedrückt, die den diskreten Werten der von ihr dargestellten kategorialen Variablen (oder minus 1) entsprechen.

Die Darstellung von Faktorstufen als 0/1-Werte ist nur in einer analytischen Gleichung wie einem linearen Modell sinnvoll (dies ist ein einfaches Konzept für diejenigen, die die Koeffizienten statistischer Modelle interpretieren können). In einer Dummy-Variablen werden die Informationen der zugrunde liegenden kategorialen Variablen in der Reihenfolge der Bits gespeichert. Wenn Sie diese Bits als Dimensionen verwenden, um ein Eingabemuster einem Merkmalsraum zuzuordnen (wie im Fall einer Ähnlichkeits- / Distanzmatrix), gehen die Informationen in der Reihenfolge der Bits vollständig verloren.


1
Vielen Dank! Eigentlich ist mein Punkt, dass Dummy-codierte kategoriale Variablen in einer euklidischen Distanz (einen gewissen) Sinn ergeben: Wenn die Werte unterschiedlich sind, addiert sie 2 zur quadratischen Distanz, wenn nicht, addiert sie 0. Und Sie könnten die Dummies in verschiedenen normalisieren Möglichkeiten, die Anzahl der Kategorien oder ihre Wahrscheinlichkeiten zu berücksichtigen.
Jubo
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.