Kom igångKom igång gratis

Nya nivåer

När en nivå hos en kategorisk variabel är sällsynt kan det hända att den inte förekommer i träningsdata. Om den sällsynta nivån sedan dyker upp i nya data vet efterföljande modeller kanske inte hur de ska hantera den. När sådana nya nivåer uppstår fungerar inte model.matrix eller caret::dummyVars för one-hot-kodning på ett korrekt sätt.

vtreat är ett "säkrare" alternativ till model.matrix för one-hot-kodning, eftersom paketet kan hantera nya nivåer på ett kontrollerat sätt. vtreat hanterar även saknade värden i data – både kategoriska och kontinuerliga.

I den här övningen får du se hur vtreat hanterar kategoriska värden som inte förekom i träningsdatan. Behandlingsplanen treatplan och variabeluppsättningen newvars från föregående övning är fortfarande tillgängliga. dframe och en ny dataram testframe har laddats in i förväg.

Den här övningen är en del av kursen

Övervakad inlärning i R: Regression

Visa kurs

Övningsinstruktioner

  • Skriv ut dframe och testframe.
    • Finns det färger i testframe som inte förekom i dframe?
  • Anropa prepare() för att skapa en one-hot-kodad version av testframe (utan utfallsvariabeln). Döp den till testframe.treat och skriv ut den.
    • Använd argumentet varRestriction för att begränsa till enbart variablerna i newvars.
    • Hur kodas de gula raderna?

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# treatplan is available
summary(treatplan)

# newvars is available
newvars

# Print dframe and testframe
___
___

# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))
Redigera och kör kod