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
Övningsinstruktioner
- Skriv ut
dframeochtestframe.- Finns det färger i
testframesom inte förekom idframe?
- Finns det färger i
- Anropa
prepare()för att skapa en one-hot-kodad version avtestframe(utan utfallsvariabeln). Döp den tilltestframe.treatoch skriv ut den.- Använd argumentet
varRestrictionför att begränsa till enbart variablerna inewvars. - Hur kodas de gula raderna?
- Använd argumentet
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 = ___))