Neue Ausprägungen
Wenn eine Ausprägung einer kategorialen Variablen selten ist, kann es passieren, dass sie im Trainingsdatensatz gar nicht vorkommt. Taucht diese seltene Ausprägung später in neuen Daten auf, wissen nachgelagerte Modelle eventuell nicht, wie sie damit umgehen sollen. Wenn solche neuen Ausprägungen auftreten, funktionieren model.matrix oder caret::dummyVars zum One-Hot-Encoding nicht korrekt.
vtreat ist eine „sicherere“ Alternative zu model.matrix für One-Hot-Encoding, da es neue Ausprägungen robust handhaben kann. vtreat geht außerdem mit fehlenden Werten in den Daten um (sowohl kategorial als auch kontinuierlich).
In dieser Übung siehst du, wie vtreat kategoriale Werte behandelt, die im Trainingssatz nicht vorkamen.
Der Behandlungsplan treatplan und die Variablenmenge newvars aus der vorherigen Übung sind weiterhin verfügbar.
dframe und ein neuer Data Frame testframe wurden bereits geladen.
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Gib
dframeundtestframeaus.- Gibt es Farben in
testframe, die indframenicht vorkamen?
- Gibt es Farben in
- Rufe
prepare()auf, um eine One-Hot-codierte Version vontestframe(ohne Zielvariable) zu erstellen. Nenne sietestframe.treatund gib sie aus.- Verwende das Argument
varRestriction, um nur auf die Variablen innewvarszu beschränken. - Wie werden die gelben Zeilen codiert?
- Verwende das Argument
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))