Lidando com preditores com pouca informação

Machine Learning com caret em R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Variáveis com nenhuma (ou baixa) variância

  • Algumas variáveis trazem pouca informação
    • Constantes (sem variância)
    • Quase constantes (baixa variância)
  • É fácil um fold da CV acabar com coluna constante
    • Pode causar problemas nos seus modelos
  • Normalmente removemos variáveis com variância extremamente baixa
Machine Learning com caret em R

Exemplo: coluna constante em mtcars

# Reproduzir conjunto de dados do último vídeo
data(mtcars)
set.seed(42)
mtcars[sample(1:nrow(mtcars), 10), "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[, 2:4]
# Adicionar coluna de valor constante a mtcars
X$bad <- 1
Machine Learning com caret em R

Exemplo: coluna constante em mtcars

# Tentar ajustar um modelo com PCA + glm
model <- train(
  X, Y, method = "glm", 
  preProcess = c("center", "scale", "medianImpute", "pca"))
Warning in preProcess.default(thresh = 0.95, k = 5, method = c("medianImpute",  :
  These variables have zero variances: bad
Something is wrong; all the RMSE metric values are missing:
      RMSE        Rsquared  
 Min.   : NA   Min.   : NA  
 1st Qu.: NA   1st Qu.: NA  
 Median : NA   Median : NA  
 Mean   :NaN   Mean   :NaN  
 3rd Qu.: NA   3rd Qu.: NA  
 Max.   : NA   Max.   : NA  
 NA's   :1     NA's   :1   
Machine Learning com caret em R

caret ao resgate (de novo)

  • "zv" remove colunas constantes
  • "nzv" remove colunas quase constantes
# Deixe o caret remover essas colunas durante a modelagem
set.seed(42)
model <- train(
  X, Y, method = "glm", 
  preProcess = c("zv", "center", "scale", "medianImpute", "pca")
)
min(model$results$RMSE)
3.402557
Machine Learning com caret em R

Vamos praticar!

Machine Learning com caret em R

Preparing Video For Download...