ComeçarComece de graça

vtreat em um pequeno exemplo

Neste exercício, você vai usar vtreat para fazer one-hot-encoding de uma variável categórica em um pequeno exemplo. vtreat cria um plano de tratamento para transformar variáveis categóricas em variáveis indicadoras (codificadas como "lev") e para limpar valores ruins de variáveis numéricas (codificadas como "clean").

Para criar um plano de tratamento use a função designTreatmentsZ() (docs)

treatplan <- designTreatmentsZ(data, varlist)
  • data: o data frame de treinamento original
  • varlist: um vetor de variáveis de entrada a serem tratadas (como strings).

designTreatmentsZ() retorna uma lista com um elemento scoreFrame: um data frame que inclui os nomes e tipos das novas variáveis:

scoreFrame <- treatplan %>% 
            magrittr::use_series(scoreFrame) %>% 
            select(varName, origName, code)
  • varName: o nome da nova variável tratada
  • origName: o nome da variável original da qual a variável tratada se origina
  • code: o tipo da nova variável.
    • "clean": uma variável numérica sem NAs ou NaNs
    • "lev": uma variável indicadora para um nível específico da variável categórica original.

(magrittr::use_series() (docs) é um alias para $ que você pode usar em pipes.)

Para estes exercícios, queremos varName onde code seja "clean" ou "lev":

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

Para transformar o conjunto de dados em variáveis totalmente numéricas e one-hot-encoded, use prepare() (docs):

data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
  • treatplan: o plano de tratamento
  • data: o data frame a ser tratado
  • varRestrictions: as variáveis desejadas nos dados tratados

O data frame dframe e o pacote magrittr 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. Vamos supor que color e size são variáveis de entrada, e popularity é o desfecho a ser previsto.
  • Crie um vetor chamado vars com os nomes das variáveis de entrada (como strings).
  • Carregue o pacote vtreat.
  • Use designTreatmentsZ() para criar um plano de tratamento para as variáveis em vars. Atribua-o à variável treatplan.
  • Obtenha e examine o scoreFrame do plano de tratamento para ver o mapeamento das variáveis antigas para as novas.
    • Você só precisa das colunas varName, origName e code.
    • Quais são os nomes das novas variáveis indicadoras? E da variável contínua?
  • Crie um vetor newvars que contenha a variável varName onde code seja clean ou lev. Imprima-o.
  • Use prepare() para criar um novo data frame dframe.treat que seja uma versão one-hot-encoded de dframe (sem a coluna de desfecho).
    • Imprima-o e compare com dframe.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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