Kompromis bias-wariancja

Uczenie maszynowe z modelami drzewiastymi w R

Sandro Raabe

Data Scientist

Hiperparametry

  • Wybierany przez modelującego
  • np. tree_depth
  • Sprawdź dokumentację!
?decision_tree

kilka hiperparametrów

Uczenie maszynowe z modelami drzewiastymi w R

Prosty model

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

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

Złożony model

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

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

drzewo o głębokości 2

drzewo o głębokości 30

Uczenie maszynowe z modelami drzewiastymi w R

Złożony model – przeuczenie – wysoka wariancja

Predykcje na zbiorze treningowym: doskonale!

małe błędy na zbiorze treningowym

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

Predykcje na zbiorze testowym: zupełnie chybione!

duże błędy na zbiorze testowym

mae(test_results, 
    estimate = .pred,
    truth = final_grade)
# A tibble: 1 x 3
  .metric  .estimate
1 mae          0.947
Uczenie maszynowe z modelami drzewiastymi w R

Prosty model – niedouczenie – wysoki bias

Duże błędy na zbiorze treningowym i testowym:

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
Uczenie maszynowe z modelami drzewiastymi w R

Kompromis bias-wariancja

kompromis bias-wariancja

 

  • Proste modele -> wysoki bias
  • Złożone modele -> wysoka wariancja
  • Kompromis między biasem a wariancją
  • Buduj modele w okolicach optymalnego punktu
Uczenie maszynowe z modelami drzewiastymi w R

Wykrywanie przeuczenia

Próbkowanie krzyżowe (CV):

collect_metrics(cv_fits)


# A tibble: 1 x 3
  .metric    mean     n 
1 mae       2.432     5
  • Wysoki błąd CV
  • Przeuczenie / wysoka wariancja
  • Zmniejsz złożoność!

Próbka treningowa:

mae(training_pred, 
    estimate = .pred, 
    truth = final_grade)
# A tibble: 1 x 2
  .metric  .estimate
1 mae          0.228
  • Mały błąd treningowy
Uczenie maszynowe z modelami drzewiastymi w R

Wykrywanie niedouczenia

Próbka treningowa:

mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
  .metric .estimate
  <chr>       <dbl>
1 mae         2.432
  • Duży błąd treningowy
  • Niedouczenie / wysoki bias
  • Zwiększ złożoność!
Uczenie maszynowe z modelami drzewiastymi w R

Czas na kompromis!

Uczenie maszynowe z modelami drzewiastymi w R

Preparing Video For Download...