Compromisul bias-varianță

Machine Learning cu modele bazate pe arbori în R

Sandro Raabe

Data Scientist

Hiperparametri

  • Ales de modelator
  • ex. tree_depth
  • Consultați documentația!
?decision_tree

mai mulți hiperparametri

Machine Learning cu modele bazate pe arbori în R

Model simplu

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

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

Model complex

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

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

arbore de adâncime 2

arbore de adâncime 30

Machine Learning cu modele bazate pe arbori în R

Model complex - supraajustare - varianță ridicată

Predicții pe setul de antrenament: foarte bine!

erori mici pe setul de antrenament

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

Predicții pe setul de test: departe de realitate!

erori mari pe setul de test

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Machine Learning cu modele bazate pe arbori în R

Model simplu - subajustare - bias ridicat

Erori mari pe setul de antrenament și pe cel de 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 cu modele bazate pe arbori în R

Compromisul bias-varianță

compromisul bias-varianță

 

  • Modele simple -> bias ridicat
  • Modele complexe -> varianță ridicată
  • Compromis între bias și varianță
  • Construiți modele în jurul punctului optim
Machine Learning cu modele bazate pe arbori în R

Detectarea supraajustării

Out-of-sample/CV:

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Eroare CV ridicată
  • Supraajustare / varianță ridicată
  • Reduceți complexitatea!

In-sample:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Eroare mică pe antrenament
Machine Learning cu modele bazate pe arbori în R

Detectarea subajustării

In-sample:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Eroare mare pe antrenament
  • Subajustare / bias ridicat
  • Creșteți complexitatea!
Machine Learning cu modele bazate pe arbori în R

Să facem compromisul!

Machine Learning cu modele bazate pe arbori în R

Preparing Video For Download...