Selecionando com base na variância

Redução de Dimensionalidade em R

Matt Pickard

Owner, Pickard Predictives, LLC

Variância de dados sem escala

um gráfico de médias com barras de erro de desvio padrão para os dados de crédito sem escala

Redução de Dimensionalidade em R

Variância de dados com escala

um gráfico de médias com barras de erro de desvio padrão para os dados de crédito com escala

Redução de Dimensionalidade em R

Calcular variâncias escaladas

credit_variances <- credit_df %>% 
  summarize(across(everything(), ~ var(scale(., center = FALSE)), na.rm = TRUE)) %>%

pivot_longer(everything(), names_to = "feature", values_to = "variance") %>%
arrange(desc(variance)) credit_variances
# A tibble: 17 × 2
   feature                  variance
   <chr>                       <dbl>
 1 num_of_loan               0.996  
 2 num_of_delayed_payment    0.986   
 ...
Redução de Dimensionalidade em R

Corte de variância

saída das variâncias

Redução de Dimensionalidade em R

Corte de variância

saída das variâncias mostrando o primeiro corte provável

Redução de Dimensionalidade em R

Corte de variância

saída das variâncias mostrando o primeiro corte provável

Redução de Dimensionalidade em R

Corte de variância

saída das variâncias mostrando o primeiro corte provável

Redução de Dimensionalidade em R

Gráfico de corte de variância

Gráfico de corte de variância

Redução de Dimensionalidade em R

Criar filtro por variância

low_var_filter <- credit_variances %>% 
  filter(variance < 0.1) %>% 
  pull(feature)

low_var_filter
[1] "credit_history_months"    "age"                     
[3] "num_credit_inquiries"     "credit_utilization_ratio"
[5] "num_credit_card"   
Redução de Dimensionalidade em R

A abordagem do tidymodels

Criar a receita

low_variance_recipe <- recipe(credit_score ~ ., data = credit_df) %>%

step_zv(all_predictors()) %>%
step_scale(all_numeric_predictors()) %>%
step_nzv(all_predictors()) %>%
prep()

Aplicar a receita

filtered_credit_df <- bake(low_variance_recipe, new_data = NULL)
Redução de Dimensionalidade em R

Investigando o efeito de uma etapa específica

low_variance_recipe <- recipe(credit_score ~ ., data = credit_df) %>% 
  step_zv(all_predictors()) %>% 
  step_scale(all_numeric_predictors()) %>% 
  step_nzv(all_predictors()) %>% 
  prep() 

tidy(low_variance_recipe, number = 3)
  terms                id       
  <chr>                <chr>    
1 num_credit_card      nzv_ni8L7
2 num_credit_inquiries nzv_ni8L7
Redução de Dimensionalidade em R

Vamos praticar!

Redução de Dimensionalidade em R

Preparing Video For Download...