Nouveaux niveaux
Quand une modalité d'une variable catégorielle est rare, il arrive qu'elle n'apparaisse pas dans les données d'entraînement. Si cette modalité rare surgit ensuite dans des données futures, les modèles en aval peuvent ne pas savoir quoi en faire. Lorsque de tels nouveaux niveaux apparaissent, utiliser model.matrix ou caret::dummyVars pour faire du one-hot-encoding ne fonctionnera pas correctement.
vtreat est une solution plus « sécuritaire » que model.matrix pour le one-hot-encoding, car elle peut gérer adéquatement les nouveaux niveaux. vtreat gère aussi les valeurs manquantes dans les données (autant catégorielles que continues).
Dans cet exercice, vous verrez comment vtreat traite des valeurs catégorielles qui n'étaient pas présentes dans l'ensemble d'entraînement.
Le plan de traitement treatplan et l'ensemble de variables newvars de l'exercice précédent sont toujours disponibles.
dframe et un nouveau tableau de données testframe ont été préchargés.
Cette activité fait partie du cours
Apprentissage supervisé en R : régression
Instructions de l’exercice
- Affichez
dframeettestframe.- Y a-t-il des couleurs dans
testframequi n'apparaissaient pas dansdframe?
- Y a-t-il des couleurs dans
- Appelez
prepare()pour créer une version one-hot-encodée detestframe(sans la variable cible). Nommez-latestframe.treatet affichez-la.- Utilisez l'argument
varRestrictionpour vous limiter uniquement aux variables denewvars. - Comment les lignes « yellow » sont-elles encodées?
- Utilisez l'argument
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))