Trade-off viés-variância

Machine Learning com modelos baseados em árvores em R

Sandro Raabe

Data Scientist

Hiperparâmetros

  • Definidos por você
  • ex.: tree_depth
  • Veja a documentação!
?decision_tree

vários hiperparâmetros

Machine Learning com modelos baseados em árvores em R

Modelo simples

simple_spec <- decision_tree(tree_depth = 2) %>% 
    set_mode("regression")

simple_spec %>% fit(final_grade ~ .,
                    data = training_data)

Modelo complexo

complex_spec <- decision_tree(tree_depth = 15) %>% 
    set_mode("regression")

complex_spec %>% fit(final_grade ~ .,
                     data = training_data)

árvore de profundidade 2

árvore de profundidade 30

Machine Learning com modelos baseados em árvores em R

Modelo complexo - overfitting - alta variância

Previsões no treino: mandou bem!

erros pequenos no treino

mae(train_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.204

Previsões no teste: bem longe!

erros grandes no teste

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Machine Learning com modelos baseados em árvores em R

Modelo simples - underfitting - alto viés

Erros grandes no treino e no teste:

bind_rows(training = mae(train_results, estimate = .pred, truth = final_grade),
          test     = mae(test_results,  estimate = .pred, truth = final_grade),
          .id = "dataset")
# A tibble: 2 x 4
  dataset    .metric  .estimate
  <chr>      <chr>        <dbl>
1 training   mae          0.754
2 test       mae          0.844
Machine Learning com modelos baseados em árvores em R

O trade-off viés-variância

trade-off viés-variância

 

  • Modelos simples -> alto viés
  • Modelos complexos -> alta variância
  • Trade-off entre viés e variância
  • Construa modelos no "sweet spot"
Machine Learning com modelos baseados em árvores em R

Detectando overfitting

Fora da amostra/CV:

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Erro de CV alto
  • Overfit / alta variância
  • Reduza a complexidade!

Dentro da amostra:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Erro de treino pequeno
Machine Learning com modelos baseados em árvores em R

Detectando underfitting

Dentro da amostra:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Erro alto dentro da amostra/treino
  • Underfit / alto viés
  • Aumente a complexidade!
Machine Learning com modelos baseados em árvores em R

Let's trade off!

Machine Learning com modelos baseados em árvores em R

Preparing Video For Download...