CommencezCommencez gratuitement

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

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 vous limiter uniquement aux 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