Ich möchte einen Klassifikator, z. B. SVM, eine zufällige Gesamtstruktur oder einen anderen Klassifikator trainieren. Eine der Funktionen im Datensatz ist eine kategoriale Variable mit 1000 Ebenen. Was ist der beste Weg, um die Anzahl der Ebenen in dieser Variablen zu reduzieren. In R gibt es eine Funktion combine.levels()
im Hmisc- Paket, die seltene Ebenen kombiniert, aber ich habe nach anderen Vorschlägen gesucht.
classification
svm
random-forest
many-categories
Sabunime
quelle
quelle
Antworten:
Wie man am besten zu tun , dies variieren wird enorm abhängig von der Aufgabe , die Sie gerade ausführen, so dass es unmöglich ist , zu sagen , was in einer aufgabenunabhängigen Art und Weise am besten sein wird.
Es gibt zwei einfache Dinge zu versuchen, wenn Ihre Ebenen ordinal sind:
Wenn die Ebenen nicht ordinal sind, können Sie die Ebenen basierend auf anderen Funktionen / Variablen in Ihrem Dataset gruppieren und die vorherigen Ebenen durch die Cluster-IDs ersetzen. Es gibt so viele Möglichkeiten, dies zu tun, wie es Clustering-Algorithmen gibt, so dass das Feld weit offen ist. Während ich es lese, ist es das, was ich
combine.levels()
tue. Sie könnten ähnlich mitkmeans()
oder tunprcomp()
. (Sie könnten / sollten anschließend einen Klassifikator trainieren, um die Cluster für neue Datenpunkte vorherzusagen.)quelle