Kom igångKom igång gratis

vtreat på ett litet exempel

I den här övningen använder du vtreat för att one-hot-koda en kategorisk variabel på ett litet exempel. vtreat skapar en behandlingsplan för att omvandla kategoriska variabler till indikatorvariabler (kodade "lev"), och för att rensa bort ogiltiga värden från numeriska variabler (kodade "clean").

Använd funktionen designTreatmentsZ() (docs) för att skapa en behandlingsplan:

treatplan <- designTreatmentsZ(data, varlist)
  • data: den ursprungliga träningsdataramen
  • varlist: en vektor med indatavariabler som ska behandlas (som strängar).

designTreatmentsZ() returnerar en lista med elementet scoreFrame: en dataram som innehåller namn och typer för de nya variablerna:

scoreFrame <- treatplan %>% 
            magrittr::use_series(scoreFrame) %>% 
            select(varName, origName, code)
  • varName: namnet på den nya behandlade variabeln
  • origName: namnet på den ursprungliga variabel som den behandlade variabeln härstammar från
  • code: typen av den nya variabeln.
    • "clean": en numerisk variabel utan NA eller NaN
    • "lev": en indikatorvariabel för en specifik nivå av den ursprungliga kategoriska variabeln.

(magrittr::use_series() (docs) är ett alias för $ som du kan använda i pipes.)

I dessa övningar vill vi ha varName där code är antingen "clean" eller "lev":

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

Använd prepare() (docs) för att omvandla datamängden till enbart numeriska och one-hot-kodade variabler:

data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
  • treatplan: behandlingsplanen
  • data: den dataram som ska behandlas
  • varRestrictions: de variabler som önskas i den behandlade datan

Dataramen dframe och paketet magrittr har förinslästs.

Den här övningen är en del av kursen

Övervakad inlärning i R: Regression

Visa kurs

Övningsinstruktioner

  • Skriv ut dframe. Vi antar att color och size är indatavariabler och att popularity är det utfall som ska förutsägas.
  • Skapa en vektor kallad vars med namnen på indatavariablerna (som strängar).
  • Läs in paketet vtreat.
  • Använd designTreatmentsZ() för att skapa en behandlingsplan för variablerna i vars. Tilldela den till variabeln treatplan.
  • Hämta och granska scoreFrame från behandlingsplanen för att se mappningen från gamla variabler till nya variabler.
    • Du behöver bara kolumnerna varName, origName och code.
    • Vad heter de nya indikatorvariablerna? Och den kontinuerliga variabeln?
  • Skapa en vektor newvars som innehåller variabeln varName där code är antingen clean eller lev. Skriv ut den.
  • Använd prepare() för att skapa en ny dataram dframe.treat som är en one-hot-kodad version av dframe (utan utfallskolumnen).
    • Skriv ut den och jämför med dframe.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod