Clustering gemischter Datentypen mit R

19

Ich frage mich, ob es möglich ist, innerhalb von R ein Clustering von Daten mit gemischten Datenvariablen durchzuführen. Mit anderen Worten, ich habe einen Datensatz, der sowohl numerische als auch kategoriale Variablen enthält, und ich finde den besten Weg, sie zu gruppieren. In SPSS würde ich zweistufige Cluster verwenden. Ich frage mich, ob ich in R ähnliche Techniken finden kann. Mir wurde über das poLCA-Paket berichtet, aber ich bin mir nicht sicher ...

Giorgio Spedicato
quelle
1
Ist SPSS TwoStep nicht für die Verarbeitung großer Datasets ausgelegt? (I bietet eine Antwort auf eine Frage im Zusammenhang hier .) Sonst wäre meine Antwort auf Can Hauptkomponentenanalyse auf Datensätze angewandt werden , um eine Mischung aus kontinuierlichen und kategorialen Variablen enthalten? Hilfe leisten?
Chl
Innerhalb des R-Paket- Clusters gibt es eine Daisy, die eine Unähnlichkeitsmatrix für gemischte Daten erzeugt (Gower-Ähnlichkeitskoeffizient). Dann können Sie Flags oder andere Clustering-Funktionen verwenden.
Rhonda
1
Verwechseln Sie die Methode nicht mit der Implementierung. Suchen Sie zunächst nach einem sinnvollen Clustering-Algorithmus. Suchen Sie dann nach einem R-Paket, das es implementiert.
Shadowtalker
Gower-Ähnlichkeit kann verwendet werden.
TTNPHNS
@gung hat kürzlich eine sehr ähnliche Frage geschlossen, die ich gestellt habe. Mir wurde gesagt, dass meine Frage nicht zum Thema gehörte, da es sich hauptsächlich um Software handelte. Ähnlich scheint es bei Software zu sein. Es würde mich sehr interessieren, warum die Regeln hier inkonsistent durchgesetzt werden. Wohlgemerkt, ich denke die Frage ist informativ, aber die Regeln sollten die Regeln sein.
Weiwen Ng

Antworten:

8

Dies kann spät kommen, aber versuchen Sie es mit klaR ( http://cran.r-project.org/web/packages/klaR/index.html ).

install.packages("klar")

Es wird der nichthierarchische k-Moden-Algorithmus verwendet, der auf einer einfachen Anpassung als Abstandsfunktion basiert, sodass der Abstand δ zwischen einer Variablen m von zwei Datenpunkten und y durch gegeben istxy

δ(xm,ym)={1xmym,0Andernfalls

Das Paket weist einen Fehler auf: Wenn zwei Datenpunkte den gleichen Abstand zu einem Cluster-Zentrum haben, wird der erste in Ihren Daten anstelle eines zufälligen Punkts ausgewählt. Sie können das Bit im Code jedoch problemlos ändern.

Um das Clustering mit gemischten Variablen zu berücksichtigen, müssen Sie in den Code gehen und die Distanzfunktion ändern, um numerische und nicht numerische Modi und Variablen zu identifizieren.

victor_v
quelle
7

Ein weiterer ansprechender Weg, mit Variablen gemischter Typen umzugehen, ist die Verwendung der Ähnlichkeitsmatrix aus Random Forests: http://cogns.northwestern.edu/cbmg/LiawAndWiener2002.pdf . Dies ermöglicht eine einheitliche Behandlung aller Variablen (beachten Sie jedoch das Problem der Variablenauswahlverzerrung). Auf der anderen Seite gibt es wirklich keinen universellen Weg, um Entfernungen für Variablen gemischter Typen zu definieren. Es hängt alles von den Anwendungskontexten ab.

XGS
quelle
4

Sie können die Mehrfachkorrespondenzanalyse verwenden, um aus den kategorialen Variablen fortlaufende Dimensionen zu erstellen, und diese dann in einem zweiten Schritt mit den numerischen Variablen verwenden.

ftr
quelle
1
Wie würden Sie numerische Variablen in MCA behandeln? Diskretisierung nutzen?
Chl
Es gibt Erweiterungen von MCA, die kontinuierliche Variablen enthalten können, siehe zum Beispiel Homogenitätsanalyse Homals
kjetil b halvorsen
3

Na ja, das kannst du bestimmt. Indem Sie die kategorialen Variablen künstlich numerisch machen. Oder mit einem auf Distanzmatrix basierenden Clustering (fpc kann das wahrscheinlich). Die Frage, die Sie zuerst zu beantworten versuchen sollten, lautet: Ist das tatsächlich sinnvoll?

Anony-Mousse
quelle
3

jk

SG=ich=1nwich,j,ksich,j,kich=1nwich,j,k
ich

wich,j,k

sich,j,k

  • wich,j,k

  • Multistate-Zeichen (nominal oder ordinal): 1 für Gleichheit, 0 sonst (entspricht dem einfachen Übereinstimmungskoeffizienten)

  • sich,j,k=1-|Xich,j-Xich,k|RichRichich

SG

1-SG

Engelbert Buxbaum
quelle
Können Sie definieren, was "Charakter" (und "Kardinalcharakter") in Ihrer Antwort ist? Meinen Sie damit Variable / Attribut / Merkmal? Außerdem könnte ich hinzufügen, dass Gower für ordinale Variablen berechnet werden kann, ohne sie als nominal zu behandeln ("multistate"), siehe .
TTNPHNS
Zeichen, Variable, Merkmal sind alle Synonyme. Kardinal bedeutet entweder Intervall oder rationale Skala.
Engelbert Buxbaum
Vielen Dank für die Klärung. Ich habe nur gefragt, weil Ihre Terminologie in der Statistik oder beim maschinellen Lernen anscheinend nicht sehr verbreitet ist: "Charakter" ist ungewöhnlich, und was Sie als "Kardinal" -Variablentyp bezeichnen, ist normalerweise als "Skalen" -Variable oder "metrische" Variable bekannt, im Gegensatz zu kategorial .
TTNPHNS
1

Wenn mögliche Werte von kategorialen Variablen nicht zu viele sind, können Sie Binärvariablen aus diesen Werten erstellen. Sie können diese binären Variablen als numerische Variablen behandeln und das Clustering ausführen. Das habe ich für mein Projekt getan.

Raghvendra
quelle
0

VarSelLCM Pauschalangebote

Variablenauswahl für modellbasiertes Clustering von gemischten Datensätzen mit fehlenden Werten

Auf CRAN und mehr in Papierform beschrieben .

Einige der bisherigen Methoden haben den Vorteil, dass sie bei der Auswahl der Anzahl der Cluster hilfreich sind und mit fehlenden Daten umgehen können. Schöne glänzende App zur Verfügung gestellt wird auch nicht verpönt werden.

Bildbeschreibung hier eingeben

radek
quelle