vtreat pe un exemplu simplu
În acest exercițiu, vei folosi vtreat pentru a aplica one-hot-encoding unei variabile categorice pe un exemplu simplu.
vtreat creează un plan de tratament pentru a transforma variabilele categorice în variabile indicator (codate "lev") și pentru a curăța valorile invalide din variabilele numerice (codate "clean").
Pentru a crea un plan de tratament, folosește funcția designTreatmentsZ() (docs)
treatplan <- designTreatmentsZ(data, varlist)
data: data frame-ul original de antrenamentvarlist: un vector cu variabilele de intrare care urmează să fie tratate (ca șiruri de caractere).
designTreatmentsZ() returnează o listă cu elementul scoreFrame: un data frame care include numele și tipurile noilor variabile:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: numele noii variabile tratateorigName: numele variabilei originale din care provine variabila tratatăcode: tipul noii variabile."clean": o variabilă numerică fără valori NA sau NaN"lev": o variabilă indicator pentru un nivel specific al variabilei categorice originale.
(magrittr::use_series() (docs) este un alias pentru $ pe care îl poți folosi în pipe-uri.)
Pentru aceste exerciții, dorim varName acolo unde code este fie "clean", fie "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Pentru a transforma setul de date în variabile exclusiv numerice și one-hot-encoded, folosește prepare() (docs):
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: planul de tratamentdata: data frame-ul care urmează să fie tratatvarRestrictions: variabilele dorite în datele tratate
Data frame-ul dframe și pachetul magrittr au fost preîncărcate.
Acest exercițiu face parte din cursul
Învățare supervizată în R: Regresia
Instrucțiuni pentru exercițiu
- Afișează
dframe. Vom considera căcolorșisizesunt variabile de intrare, iarpopularityeste rezultatul de prezis. - Creează un vector numit
varscu numele variabilelor de intrare (ca șiruri de caractere). - Încarcă pachetul
vtreat. - Folosește
designTreatmentsZ()pentru a crea un plan de tratament pentru variabilele dinvars. Atribuie-l variabileitreatplan. - Extrage și examinează
scoreFramedin planul de tratament pentru a vedea corespondența dintre variabilele vechi și cele noi.- Ai nevoie doar de coloanele
varName,origNameșicode. - Care sunt numele noilor variabile indicator? Dar al variabilei continue?
- Ai nevoie doar de coloanele
- Creează un vector
newvarscare conținevarNameacolo undecodeeste fieclean, fielev. Afișează-l. - Folosește
prepare()pentru a crea un nou data framedframe.treat, care să fie o versiune one-hot-encoded a luidframe(fără coloana cu rezultatul).- Afișează-l și compară-l cu
dframe.
- Afișează-l și compară-l cu
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))