Bias-variance-avvägning

Maskininlärning med trädbaserade modeller i R

Sandro Raabe

Data Scientist

Hyperparametrar

  • Väljs av modelleraren
  • t.ex. tree_depth
  • Kontrollera dokumentationen!
?decision_tree

flera hyperparametrar

Maskininlärning med trädbaserade modeller i R

Enkel modell

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

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

Komplex modell

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

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

träd med djup 2

träd med djup 30

Maskininlärning med trädbaserade modeller i R

Komplex modell – överanpassning – hög varians

Prediktioner på träningsdata: bra jobbat!

små fel på träningsdata

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

Prediktioner på testdata: långt ifrån!

stora fel på testdata

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Maskininlärning med trädbaserade modeller i R

Enkel modell – underanpassning – hög bias

Stora fel på tränings- och testdata:

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
Maskininlärning med trädbaserade modeller i R

Bias-variance-avvägningen

bias-variance-avvägning

 

  • Enkla modeller -> hög bias
  • Komplexa modeller -> hög varians
  • Avvägning mellan bias och varians
  • Bygg modeller kring sweet spot
Maskininlärning med trädbaserade modeller i R

Detektera överanpassning

Out-of-sample/CV:

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Högt CV-fel
  • Överanpassning / hög varians
  • Minska komplexiteten!

In-sample:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Litet träningsfel
Maskininlärning med trädbaserade modeller i R

Detektera underanpassning

In-sample:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Stort in-sample-/träningsfel
  • Underanpassning / hög bias
  • Öka komplexiteten!
Maskininlärning med trädbaserade modeller i R

Nu kör vi en övning!

Maskininlärning med trädbaserade modeller i R

Preparing Video For Download...