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 ...
r
clustering
mixed-type-data
Giorgio Spedicato
quelle
quelle
Antworten:
Dies kann spät kommen, aber versuchen Sie es mit klaR ( http://cran.r-project.org/web/packages/klaR/index.html ).
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 istx y
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.
quelle
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.
quelle
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.
quelle
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?
quelle
Multistate-Zeichen (nominal oder ordinal): 1 für Gleichheit, 0 sonst (entspricht dem einfachen Übereinstimmungskoeffizienten)
quelle
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.
quelle
Hier könnte das Clustering von k-Prototypen besser geeignet sein. Es kombiniert k-Modi und k-Mittelwerte und ist in der Lage, gemischte numerische / kategoriale Daten zu gruppieren. Verwenden Sie für R das Paket 'clustMixType'.
https://cran.r-project.org/web/packages/clustMixType/clustMixType.pdf
quelle
VarSelLCM
PauschalangeboteAuf 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.
quelle