Níveis inéditos
Quando um nível de uma variável categórica é raro, às vezes ele não aparece nos dados de treino. Se esse nível raro surgir em dados futuros, os modelos podem não saber como tratá-lo. Quando esses níveis inéditos aparecem, usar model.matrix ou caret::dummyVars para fazer one-hot-encoding não funciona corretamente.
vtreat é uma alternativa "mais segura" ao model.matrix para one-hot-encoding, porque consegue lidar com níveis inéditos com segurança. O vtreat também trata valores ausentes nos dados (tanto categóricos quanto contínuos).
Neste exercício, você vai ver como o vtreat lida com valores categóricos que não apareceram no conjunto de treino.
O plano de tratamento treatplan e o conjunto de variáveis newvars do exercício anterior ainda estão disponíveis.
dframe e um novo data frame testframe já foram pré-carregados.
Este exercício faz parte do curso
Aprendizado Supervisionado em R: Regressão
Instruções do exercício
- Imprima
dframeetestframe.- Existem cores em
testframeque não apareceram emdframe?
- Existem cores em
- Chame
prepare()para criar uma versão one-hot-encoded detestframe(sem o desfecho). Chame-a detestframe.treate imprima.- Use o argumento
varRestrictionpara restringir apenas às variáveis emnewvars. - Como as linhas com a cor yellow foram codificadas?
- Use o argumento
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))