Ich muss einen neuen Datenrahmen erstellen nDF, die alle kategorischen Variablen binarisiert und gleichzeitig alle anderen Variablen in einem Datenrahmen DF behält. Zum Beispiel habe ich die folgenden Feature-Variablen: RACE (4 Typen) und AGE, und eine Ausgabevariable namens CLASS.One-Hot-Codierung in [R] | Kategorische Dummy-Variablen
DF =
RACE AGE (BELOW 21) CLASS Case 1 HISPANIC 0 A Case 2 ASIAN 1 A Case 3 HISPANIC 1 D Case 4 CAUCASIAN 1 B
Ich möchte dies mit fünf (5) Variablen in NDF konvertieren oder vier (4) selbst:
RACE.1 RACE.2 RACE.3 AGE (BELOW 21) CLASS Case 1 0 0 0 0 A Case 2 0 0 1 1 A Case 3 0 0 0 1 D Case 4 0 1 0 1 B
Ich bin vertraut mit der Behandlung Gegensatz zu den variablen DF $ RENNEN. wenn ich jedoch implementieren
contrasts(DF$RACE) = contr.treatment(4)
was bekomme ich noch ein DF von drei Variablen, aber mit variabler DF $ RACE das Attribut „Kontraste“.
Was ich letztendlich möchte, ist ein neuer Datenrahmen nDF wie oben dargestellt, aber die Auswertung kann sehr langweilig sein, wenn man etwa 50 Merkmalsvariablen hat, wobei mehr als fünf (5) kategorische Variablen sind.
Wenn Sie offen für die Verwendung der [data.table] (https://github.com/Rdatatable/data.table) Paket können Sie die one_hot() -Methode von [mltools] (https://github.com/ben519/mltools) verwenden. – Ben