Mais medidas do modelo

Machine Learning com modelos baseados em árvores em R

Sandro Raabe

Data Scientist

Limites da acurácia

 

  • Modelo "ingênuo" que sempre prevê no pode ter 98% de acurácia

$\rightarrow$ Possível em conjunto de dados desbalanceado com 98% de amostras negativas

Machine Learning com modelos baseados em árvores em R

Sensibilidade ou taxa de verdadeiros positivos

  • Proporção de todos os positivos que foram classificados corretamente

matriz de confusão mostrando sensibilidade

Machine Learning com modelos baseados em árvores em R

Especificidade ou taxa de verdadeiros negativos

  • Proporção de todos os negativos que foram classificados corretamente

matriz de confusão mostrando taxa de verdadeiros negativos

Machine Learning com modelos baseados em árvores em R

tabela mostrando diferentes limiares

Machine Learning com modelos baseados em árvores em R

Curva ROC (Receiver-operating-characteristic)

  • Visualiza o desempenho do modelo de classificação em todos os limiares possíveis

gráfico da curva ROC

Machine Learning com modelos baseados em árvores em R

Curva ROC e AUC

diferentes curvas ROC

Machine Learning com modelos baseados em árvores em R

Área sob a curva ROC

gráfico de AUC

  • AUC = 0,5
  • Desempenho não melhor que acaso

 

  • AUC = 1
  • Todos os exemplos corretos em todo limiar $\rightarrow$ modelo perfeito

 

  • AUC = 0
  • Todos os exemplos classificados incorretamente
Machine Learning com modelos baseados em árvores em R

sensibilidade no yardstick: sens()

predictions
# A tibble: 153 x 2
.pred_class   true_class
      <fct>        <fct>     
 1      yes           no        
 2       no           no        
 3       no          yes       
 4      yes          yes
# Calcular sensibilidade com um único limiar
sens(predictions, 
     estimate = .pred_class, 
     truth = true_class)
# A tibble: 1 x 2
  .metric        .estimate
  <chr>              <dbl>
1 sensitivity        0.872
  • Argumentos semelhantes a accuracy() e conf_mat()
Machine Learning com modelos baseados em árvores em R

ROC do yardstick: roc_curve()

# Prever probabilidades no conjunto de teste
predictions <- predict(model,
                       data_test,

type = "prob") %>%
bind_cols(data_test)
# A tibble: 9,116 x 13
   .pred_yes still_customer age gender    ...
       <dbl> <fct>         <int> <fct>    ...
 1    0.0557 no               45 M        ...
 2    0.0625 no               49 F        ...
 3    0.330  no               51 M        ...
 4    ...
 ...
# Calcular a curva ROC para todos os limiares
roc <- roc_curve(predictions,

estimate = .pred_yes,
truth = still_customer)
# Plotar a curva ROC autoplot(roc)

curva roc

Machine Learning com modelos baseados em árvores em R

AUC do yardstick: roc_auc()

  • Mesmos argumentos: dados, coluna de predição, coluna de verdade
# Calcular a área sob a curva
roc_auc(predictions, 
        estimate = .pred_yes, 
        truth = still_customer)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 roc_auc binary         0.872
Machine Learning com modelos baseados em árvores em R

Vamos medir!

Machine Learning com modelos baseados em árvores em R

Preparing Video For Download...