Bias-variantie-afweging

Machine Learning met boomgebaseerde modellen in R

Sandro Raabe

Data Scientist

Hyperparameters

  • Gekozen door modelleur
  • bijv. tree_depth
  • Check de documentatie!
?decision_tree

meerdere hyperparameters

Machine Learning met boomgebaseerde modellen in R

Simpel model

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

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

Complex model

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

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

boom met diepte 2

boom met diepte 30

Machine Learning met boomgebaseerde modellen in R

Complex model - overfitting - hoge variantie

Voorspellingen op trainingsset: goed gedaan!

kleine fouten op trainingsset

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

Voorspellingen op testset: ver naast!

grote fouten op testset

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Machine Learning met boomgebaseerde modellen in R

Simpel model - underfitting - hoge bias

Grote fouten op training- én testset:

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 met boomgebaseerde modellen in R

De bias-variantie-afweging

bias-variantie-afweging

 

  • Simpele modellen -> hoge bias
  • Complexe modellen -> hoge variantie
  • Afweging tussen bias en variantie
  • Bouw rond de sweet spot
Machine Learning met boomgebaseerde modellen in R

Overfitting detecteren

Out-of-sample/CV:

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Hoge CV-fout
  • Overfit / hoge variantie
  • Verlaag complexiteit!

In-sample:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Kleine trainingsfout
Machine Learning met boomgebaseerde modellen in R

Underfitting detecteren

In-sample:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Grote in-sample/trainingsfout
  • Underfit / hoge bias
  • Verhoog complexiteit!
Machine Learning met boomgebaseerde modellen in R

Laten we afwegen!

Machine Learning met boomgebaseerde modellen in R

Preparing Video For Download...