Aan de slagGa gratis aan de slag

Nieuwe levels

Als een level van een categorische variabele zeldzaam is, kan het gebeuren dat het niet in de trainingsdata voorkomt. Als dat zeldzame level daarna wél in toekomstige data opduikt, weten downstream-modellen soms niet wat ze ermee moeten. Wanneer zulke nieuwe levels verschijnen, werken model.matrix of caret::dummyVars voor one-hot-encoding niet correct.

vtreat is een "veiligere" variant op model.matrix voor one-hot-encoding, omdat het nieuwe levels veilig kan afhandelen. vtreat gaat ook om met ontbrekende waarden in de data (zowel categorisch als continu).

In deze oefening zie je hoe vtreat categorische waarden verwerkt die niet in de trainingsset voorkwamen. Het treatmentplan treatplan en de set variabelen newvars uit de vorige oefening zijn nog beschikbaar. dframe en een nieuw gegevensframe testframe zijn vooraf ingeladen.

Deze oefening maakt deel uit van de cursus

Supervised Learning in R: Regressie

Cursus bekijken

Oefeninstructies

  • Print dframe en testframe.
    • Staan er kleuren in testframe die niet in dframe voorkwamen?
  • Roep prepare() aan om een one-hot-gecodeerde versie van testframe te maken (zonder de uitkomst). Noem die testframe.treat en print hem.
    • Gebruik het argument varRestriction om te beperken tot alleen de variabelen in newvars.
    • Hoe zijn de gele rijen gecodeerd?

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# treatplan is available
summary(treatplan)

# newvars is available
newvars

# Print dframe and testframe
___
___

# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))
Code bewerken en uitvoeren