CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Affichez dframe et testframe.
    • Y a-t-il des couleurs dans testframe qui n’apparaissaient pas dans dframe ?
  • Appelez prepare() pour créer une version one-hot-encodée de testframe (sans la variable cible). Nommez-la testframe.treat et affichez-la.
    • Utilisez l’argument varRestriction pour restreindre aux seules variables de newvars.
    • Comment les lignes yellow sont-elles encodées ?

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 = ___))
Modifier et exécuter le code