ComeçarComece de graça

Aplicar imputação pela mediana

Neste capítulo, você usará uma versão do conjunto de dados Wisconsin Breast Cancer. Esse conjunto traz um clássico problema de classificação binária: 50% das amostras são benignas, 50% são malignas, e o desafio é identificar quais são quais.

Esse conjunto é interessante porque muitos preditores têm valores ausentes e a maioria das linhas possui pelo menos um valor ausente. Isso traz um desafio de modelagem, pois a maioria dos algoritmos de Machine Learning não lida com valores ausentes por padrão. Por exemplo, sua primeira ideia pode ser ajustar uma regressão logística a esses dados, mas, antes disso, é preciso definir uma estratégia para tratar os NAs.

Felizmente, a função train() do caret tem um argumento chamado preProcess, que permite indicar que a imputação pela mediana seja usada para preencher os valores ausentes. Em capítulos anteriores, você criou modelos com a função train() usando fórmulas como y ~ .. Uma forma alternativa é especificar os argumentos x e y para train(), em que x é um objeto com amostras nas linhas e variáveis nas colunas, e y é um vetor numérico ou fator contendo os desfechos. Em outras palavras, x é uma matriz ou data frame que contém todo o conjunto de dados que você usaria no argumento data de uma chamada a lm(), por exemplo, mas exclui a coluna da variável resposta; y é um vetor que contém apenas a coluna da variável resposta.

Para este exercício, o argumento x de train() já está carregado no seu workspace como breast_cancer_x e y como breast_cancer_y.

Este exercício faz parte do curso

Machine Learning com caret em R

Ver curso

Instruções do exercício

  • Use a função train() para ajustar um modelo glm chamado median_model ao conjunto de dados de câncer de mama. Use preProcess = "medianImpute" para tratar os valores ausentes.
  • Imprima median_model no console.

Exercício interativo prático

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

# Apply median imputation: median_model
median_model <- train(
  x = ___, 
  y = ___,
  method = ___,
  trControl = myControl,
  preProcess = ___
)

# Print median_model to console
Editar e executar o código