Nouveaux niveaux
Lorsqu’une modalité d’une variable catégorielle est rare, il se peut qu’elle n’apparaisse pas dans les données d’entraînement. Si cette modalité rare apparaît ensuite dans des données futures, les modèles en aval peuvent ne pas savoir comment la gérer. 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 alternative « plus sûre » à model.matrix pour le one-hot-encoding, car il peut gérer correctement les nouveaux niveaux. vtreat gère aussi les valeurs manquantes dans les données (catégorielles comme continues).
Dans cet exercice, vous allez voir comment vtreat traite des valeurs catégorielles absentes de 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 data frame testframe ont été préchargés.
Cet exercice fait partie du cours
<cours>Apprentissage supervisé en R : Régression</cours>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 restreindre aux seules 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 = ___))