Livelli inediti
Quando un livello di una variabile categorica è raro, a volte può non comparire nei dati di training. Se quel livello raro poi appare nei dati futuri, i modelli a valle potrebbero non sapere come gestirlo. Quando compaiono questi livelli inediti, usare model.matrix o caret::dummyVars per la one-hot-encoding non funzionerà correttamente.
vtreat è un'alternativa più "sicura" a model.matrix per la one-hot-encoding, perché può gestire in modo sicuro i livelli inediti. vtreat gestisce anche i valori mancanti nei dati (sia categorici sia continui).
In questo esercizio vedrai come vtreat gestisce valori categorici che non sono apparsi nel set di training.
Il piano di trattamento treatplan e l'insieme di variabili newvars dell'esercizio precedente sono ancora disponibili.
dframe e un nuovo data frame testframe sono già stati caricati.
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Stampa
dframeetestframe.- Ci sono colori in
testframeche non comparivano indframe?
- Ci sono colori in
- Chiama
prepare()per creare una versione one-hot-encoded ditestframe(senza l'outcome). Chiamalatestframe.treate stampala.- Usa l'argomento
varRestrictionper limitarti solo alle variabili innewvars. - Come sono codificate le righe gialle?
- Usa l'argomento
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))