IniziaInizia gratis

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 originale
  • varlist: 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 trattata
  • origName: il nome della variabile originale da cui proviene la variabile trattata
  • code: 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 trattamento
  • data: il data frame da trattare
  • varRestrictions: 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

Visualizza il corso

Istruzioni dell'esercizio

  • Stampa dframe. Supponiamo che color e size siano variabili di input e che popularity sia l’output da prevedere.
  • Crea un vettore chiamato vars con i nomi delle variabili di input (come stringhe).
  • Carica il pacchetto vtreat.
  • Usa designTreatmentsZ() per creare un piano di trattamento per le variabili in vars. Assegnalo alla variabile treatplan.
  • Ottieni ed esamina lo scoreFrame dal piano di trattamento per vedere la mappatura dalle variabili originali a quelle nuove.
    • Ti servono solo le colonne varName, origName e code.
    • Quali sono i nomi delle nuove variabili indicatore? E della variabile continua?
  • Crea un vettore newvars che contenga la variabile varName dove code è clean oppure lev. Stampalo.
  • Usa prepare() per creare un nuovo data frame dframe.treat che sia una versione one-hot-encoded di dframe (senza la colonna dell’output).
    • Stampalo e confrontalo con dframe.

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))
Modifica ed esegui il codice