EmpezarEmpieza gratis

Niveles novedosos

Cuando un nivel de una variable categórica es raro, a veces puede no aparecer en los datos de entrenamiento. Si ese nivel raro aparece después en datos futuros, los modelos posteriores pueden no saber cómo manejarlo. Cuando aparecen estos niveles novedosos, usar model.matrix o caret::dummyVars para hacer one-hot-encoding no funcionará correctamente.

vtreat es una alternativa "más segura" a model.matrix para el one-hot-encoding, porque puede gestionar niveles novedosos de forma segura. vtreat también gestiona valores faltantes en los datos (tanto categóricos como continuos).

En este ejercicio verás cómo vtreat maneja valores categóricos que no aparecían en el conjunto de entrenamiento. El plan de tratamiento treatplan y el conjunto de variables newvars del ejercicio anterior siguen disponibles. dframe y un nuevo data frame testframe se han precargado.

Este ejercicio forma parte del curso

Aprendizaje supervisado en R: Regresión

Ver curso

Instrucciones del ejercicio

  • Imprime dframe y testframe.
    • ¿Hay colores en testframe que no aparecieran en dframe?
  • Llama a prepare() para crear una versión one-hot-encoded de testframe (sin la variable de salida). Llámala testframe.treat e imprímela.
    • Usa el argumento varRestriction para limitarte solo a las variables en newvars.
    • ¿Cómo se codifican las filas de color yellow?

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# treatplan is available
summary(treatplan)

# newvars is available
newvars

# Print dframe and testframe
___
___

# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))
Editar y ejecutar código