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
Instrucciones del ejercicio
- Imprime
dframeytestframe.- ¿Hay colores en
testframeque no aparecieran endframe?
- ¿Hay colores en
- Llama a
prepare()para crear una versión one-hot-encoded detestframe(sin la variable de salida). Llámalatestframe.treate imprímela.- Usa el argumento
varRestrictionpara limitarte solo a las variables ennewvars. - ¿Cómo se codifican las filas de color yellow?
- Usa el argumento
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 = ___))