CommencezCommencez gratuitement

vtreat sur un petit exemple

Dans cet exercice, vous utiliserez vtreat pour appliquer un one-hot-encoding à une variable catégorielle sur un petit exemple. vtreat crée un plan de traitement pour transformer les variables catégorielles en variables indicatrices (code "lev") et pour nettoyer les mauvaises valeurs dans les variables numériques (code "clean").

Pour concevoir un plan de traitement, utilisez la fonction designTreatmentsZ() (docs)

treatplan <- designTreatmentsZ(data, varlist)
  • data : la trame de données d'entraînement originale
  • varlist : un vecteur de variables d'entrée à traiter (en chaînes de caractères).

designTreatmentsZ() renvoie une liste contenant un élément scoreFrame : une trame de données qui inclut les noms et types des nouvelles variables :

scoreFrame <- treatplan %>% 
            magrittr::use_series(scoreFrame) %>% 
            select(varName, origName, code)
  • varName : le nom de la nouvelle variable traitée
  • origName : le nom de la variable originale dont provient la variable traitée
  • code : le type de la nouvelle variable.
    • "clean" : une variable numérique sans NA ni NaN
    • "lev" : une variable indicatrice pour un niveau précis de la variable catégorielle originale.

(magrittr::use_series() (docs) est un alias de $ que vous pouvez utiliser dans des enchaînements.)

Pour ces exercices, nous voulons varName lorsque code vaut "clean" ou "lev" :

newvarlist <- scoreFrame %>% 
             filter(code %in% c("clean", "lev") %>%
             magrittr::use_series(varName)

Pour transformer l'ensemble de données en variables toutes numériques et one-hot-encodées, utilisez prepare() (docs) :

data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
  • treatplan : le plan de traitement
  • data : la trame de données à traiter
  • varRestrictions : les variables souhaitées dans les données traitées

La trame de données dframe et le paquet magrittr 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. Nous supposerons que color et size sont des variables d'entrée, et que popularity est la variable cible à prédire.
  • Créez un vecteur nommé vars avec les noms des variables d'entrée (en chaînes de caractères).
  • Chargez le paquet vtreat.
  • Utilisez designTreatmentsZ() pour créer un plan de traitement pour les variables de vars. Assignez-le à la variable treatplan.
  • Obtenez et examinez le scoreFrame du plan de traitement pour voir la correspondance entre les anciennes et les nouvelles variables.
    • Vous n'avez besoin que des colonnes varName, origName et code.
    • Quels sont les noms des nouvelles variables indicatrices ? De la variable continue ?
  • Créez un vecteur newvars qui contient la variable varName lorsque code est soit clean soit lev. Affichez-le.
  • Utilisez prepare() pour créer une nouvelle trame de données dframe.treat qui est une version one-hot-encodée de dframe (sans la colonne cible).
    • Affichez-la et comparez avec dframe.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Print dframe
dframe

# Create and print a vector of variable names
(vars <- ___)

# Load the package vtreat
___

# Create the treatment plan
treatplan <- ___(___, ___)

# Examine the scoreFrame
(scoreFrame <- treatplan %>%
    use_series(scoreFrame) %>%
    select(___, ___, ___))

# We only want the rows with codes "clean" or "lev"
(newvars <- scoreFrame %>%
    filter(code %in% ___) %>%
    use_series(varName))

# Create the treated training data
(dframe.treat <- ___(___, ___, varRestriction = newvars))
Modifier et exécuter le code