LoslegenKostenlos starten

vtreat an einem kleinen Beispiel

In dieser Übung verwendest du vtreat, um eine kategoriale Variable in einem kleinen Beispiel per One-Hot-Encoding zu kodieren. vtreat erstellt einen Treatment-Plan, um kategoriale Variablen in Indikatorvariablen umzuwandeln (mit "lev" gekennzeichnet) und numerische Variablen zu bereinigen (mit "clean" gekennzeichnet), also fehlerhafte Werte zu entfernen.

Zum Entwerfen eines Treatment-Plans verwendest du die Funktion designTreatmentsZ() (Docs)

treatplan <- designTreatmentsZ(data, varlist)
  • data: der originale Trainings-Data-Frame
  • varlist: ein Vektor der zu behandelnden Eingabevariablen (als Strings).

designTreatmentsZ() gibt eine Liste mit einem Element scoreFrame zurück: ein Data Frame, der die Namen und Typen der neuen Variablen enthält:

scoreFrame <- treatplan %>% 
            magrittr::use_series(scoreFrame) %>% 
            select(varName, origName, code)
  • varName: der Name der neuen behandelten Variable
  • origName: der Name der ursprünglichen Variable, aus der die behandelte Variable stammt
  • code: der Typ der neuen Variable.
    • "clean": eine numerische Variable ohne NAs oder NaNs
    • "lev": eine Indikatorvariable für ein spezifisches Ausprägungsniveau der ursprünglichen kategorialen Variable.

(magrittr::use_series() (Docs) ist ein Alias für $, den du in Pipes verwenden kannst.)

Für diese Übungen wollen wir varName, bei denen code entweder "clean" oder "lev" ist:

newvarlist <- scoreFrame %>% 
             filter(code %in% c("clean", "lev") %>%
             magrittr::use_series(varName)

Um den Datensatz in vollständig numerische und one-hot-kodierte Variablen zu transformieren, verwende prepare() (Docs):

data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
  • treatplan: der Treatment-Plan
  • data: der zu behandelnde Data Frame
  • varRestrictions: die gewünschten Variablen in den behandelten Daten

Der Data Frame dframe und das Paket magrittr wurden bereits geladen.

Diese Übung ist Teil des Kurses

<Kurs>Überwachtes Lernen in R: Regression</Kurs>
Kurs ansehen

Übungsanweisungen

  • Gib dframe aus. Wir gehen davon aus, dass color und size Eingabevariablen sind und popularity das vorherzusagende Ergebnis ist.
  • Erstelle einen Vektor namens vars mit den Namen der Eingabevariablen (als Strings).
  • Lade das Paket vtreat.
  • Verwende designTreatmentsZ(), um einen Treatment-Plan für die Variablen in vars zu erstellen. Weise ihn der Variable treatplan zu.
  • Hole dir den scoreFrame aus dem Treatment-Plan und untersuche ihn, um die Abbildung von alten auf neue Variablen zu sehen.
    • Du brauchst nur die Spalten varName, origName und code.
    • Wie heißen die neuen Indikatorvariablen? Wie die kontinuierliche Variable?
  • Erstelle einen Vektor newvars, der die Variable varName enthält, bei der code entweder clean oder lev ist. Gib ihn aus.
  • Verwende prepare(), um einen neuen Data Frame dframe.treat zu erstellen, der eine One-Hot-kodierte Version von dframe ist (ohne die Ergebnis-Spalte).
    • Gib ihn aus und vergleiche mit dframe.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Print dframe
dframe

# Create and print a vector of variable names
(vars <- ___)

# Load the package vtreat
___

# Create the treatment plan
treatplan <- ___(___, ___)

# Examine the scoreFrame
(scoreFrame <- treatplan %>%
    use_series(scoreFrame) %>%
    select(___, ___, ___))

# We only want the rows with codes "clean" or "lev"
(newvars <- scoreFrame %>%
    filter(code %in% ___) %>%
    use_series(varName))

# Create the treated training data
(dframe.treat <- ___(___, ___, varRestriction = newvars))
Code bearbeiten und ausführen