Compromesso bias-varianza

Machine Learning con modelli ad albero in R

Sandro Raabe

Data Scientist

Iperparametri

  • Scelti dal modellatore
  • es. tree_depth
  • Controlla la documentazione!
?decision_tree

diversi iperparametri

Machine Learning con modelli ad albero in R

Modello semplice

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

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

Modello complesso

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

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

albero di profondità 2

albero di profondità 30

Machine Learning con modelli ad albero in R

Modello complesso - overfitting - alta varianza

Predizioni sul training: ottimo!

errori piccoli sul training

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

Predizioni sul test: fuori bersaglio!

errori grandi sul test

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Machine Learning con modelli ad albero in R

Modello semplice - underfitting - alto bias

Errori grandi su training e test:

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 con modelli ad albero in R

Il compromesso bias-varianza

compromesso bias-varianza

 

  • Modelli semplici -> alto bias
  • Modelli complessi -> alta varianza
  • Compromesso tra bias e varianza
  • Costruisci modelli vicino al punto ideale
Machine Learning con modelli ad albero in R

Rilevare l’overfitting

Fuori campione/CV:

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Errore CV alto
  • Overfitting / alta varianza
  • Riduci la complessità!

In-sample:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Errore training basso
Machine Learning con modelli ad albero in R

Rilevare l’underfitting

In-sample:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Errore in-sample/training grande
  • Underfitting / alto bias
  • Aumenta la complessità!
Machine Learning con modelli ad albero in R

Troviamo il compromesso!

Machine Learning con modelli ad albero in R

Preparing Video For Download...