IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Stampa dframe e testframe.
    • Ci sono colori in testframe che non comparivano in dframe?
  • Chiama prepare() per creare una versione one-hot-encoded di testframe (senza l'outcome). Chiamala testframe.treat e stampala.
    • Usa l'argomento varRestriction per limitarti solo alle variabili in newvars.
    • Come sono codificate le righe gialle?

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