vtreat su un piccolo esempio
In questo esercizio userai vtreat per eseguire la one-hot-encoding di una variabile categoriale su un piccolo esempio.
vtreat crea un piano di trattamento per trasformare le variabili categoriali in variabili indicatore (codificate come "lev") e per ripulire i valori errati nelle variabili numeriche (codificate come "clean").
Per progettare un piano di trattamento usa la funzione designTreatmentsZ() (docs)
treatplan <- designTreatmentsZ(data, varlist)
data: il data frame di training originalevarlist: un vettore di variabili di input da trattare (come stringhe).
designTreatmentsZ() restituisce una lista con un elemento scoreFrame: un data frame che include i nomi e i tipi delle nuove variabili:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: il nome della nuova variabile trattataorigName: il nome della variabile originale da cui proviene la variabile trattatacode: il tipo della nuova variabile."clean": una variabile numerica senza NA o NaN"lev": una variabile indicatore per uno specifico livello della variabile categoriale originale.
(magrittr::use_series() (docs) è un alias di $ che puoi usare nelle pipe.)
Per questi esercizi, ci serve varName dove code è "clean" oppure "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Per trasformare l’insieme di dati in sole variabili numeriche e one-hot-encoded, usa prepare() (docs):
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: il piano di trattamentodata: il data frame da trattarevarRestrictions: le variabili desiderate nei dati trattati
Il data frame dframe e il pacchetto magrittr sono già stati caricati.
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Stampa
dframe. Supponiamo checoloresizesiano variabili di input e chepopularitysia l’output da prevedere. - Crea un vettore chiamato
varscon i nomi delle variabili di input (come stringhe). - Carica il pacchetto
vtreat. - Usa
designTreatmentsZ()per creare un piano di trattamento per le variabili invars. Assegnalo alla variabiletreatplan. - Ottieni ed esamina lo
scoreFramedal piano di trattamento per vedere la mappatura dalle variabili originali a quelle nuove.- Ti servono solo le colonne
varName,origNameecode. - Quali sono i nomi delle nuove variabili indicatore? E della variabile continua?
- Ti servono solo le colonne
- Crea un vettore
newvarsche contenga la variabilevarNamedovecodeècleanoppurelev. Stampalo. - Usa
prepare()per creare un nuovo data framedframe.treatche sia una versione one-hot-encoded didframe(senza la colonna dell’output).- Stampalo e confrontalo con
dframe.
- Stampalo e confrontalo con
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))