ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Imprima dframe e testframe.
    • Existem cores em testframe que não apareceram em dframe?
  • Chame prepare() para criar uma versão one-hot-encoded de testframe (sem o desfecho). Chame-a de testframe.treat e imprima.
    • Use o argumento varRestriction para restringir apenas às variáveis em newvars.
    • Como as linhas com a cor yellow foram codificadas?

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 = ___))
Editar e executar o código