Utvärdera modellens prestanda

Modellering med tidymodels i R

David Svancer

Data Scientist

Indata till yardstick-funktioner

Alla yardstick-funktioner kräver en tibble med modellresultat

  • Kolumn med de sanna utfallsvärdena
    • hwy för mpg-data
  • Kolumn med modellens prediktioner
    • .pred
mpg_test_results
# A tibble: 57 x 3
     hwy   cty .pred
   <int> <int> <dbl>
 1    29    18  25.0
 2    31    20  27.7
 3    27    18  25.0
 4    26    18  25.0
 5    25    16  22.3
# ... with 47 more rows
Modellering med tidymodels i R

Root mean squared error (RMSE)

RMSE skattar det genomsnittliga prediktionsfelet

  • Beräknas med funktionen rmse() från yardstick
    • Tar en tibble med modellresultat
    • truth är kolumnen med sanna utfallsvärden
    • estimate är kolumnen med predikterade utfallsvärden
mpg_test_results %>% 
  rmse(truth = hwy, estimate = .pred)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard        1.93
Modellering med tidymodels i R

R²-måttet

Mäter den kvadrerade korrelationen mellan faktiska och predikterade värden

  • Kallas även determinationskoefficienten
  • Varierar mellan 0 och 1
    • När alla prediktioner stämmer överens med de sanna värdena är R² = 1
  • Beräknas med funktionen rsq() från yardstick
mpg_test_results %>% 
  rsq(truth = hwy, estimate = .pred)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rsq     standard       0.904
Modellering med tidymodels i R

R²-diagram

Visualisering av R²-måttet

  • Modellens prediktioner mot det sanna utfallet
  • Linjen y = x
    • Representerar R² = 1
  • Används för att hitta potentiella problem med modellens prestanda
    • Icke-linjära mönster
    • Regioner där modellen predikterar dåligt

R²-diagram för mpg-modellen

Modellering med tidymodels i R

Rita R²-diagram

Skapa R²-diagram med ggplot2

  • Tibble med modellresultat
  • geom_point()
  • geom_abline()
  • coord_obs_pred()
ggplot(mpg_test_results, aes(x = hwy, y = .pred)) +

geom_point() +
geom_abline(color = 'blue', linetype = 2) +
coord_obs_pred() + labs(title = 'R-Squared Plot', y = 'Predicted Highway MPG', x = 'Actual Highway MPG')

R²-diagram för mpg-modellen

Modellering med tidymodels i R

Effektivisera modellanpassning

Funktionen last_fit()

  • Tar en modellspecifikation, modellformel och ett datadelningsobjekt
  • Utför följande:
    1. Skapar tränings- och testdatamängder
    2. Anpassar modellen till träningsdata
    3. Beräknar mätvärden och prediktioner på testdata
    4. Returnerar ett objekt med alla resultat
lm_last_fit <- lm_model %>% 
  last_fit(hwy ~ cty, 
           split = mpg_split)
Modellering med tidymodels i R

Samla in mätvärden

Funktionen collect_metrics()

  • Tar resultaten från last_fit()
    • Returnerar en tibble med prestandamätvärden från testdatamängden
  • Standardmätvärden för regressionsmodell
    • RMSE
lm_last_fit %>% 
  collect_metrics()
# A tibble: 2 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard       1.93 
2 rsq     standard       0.904
Modellering med tidymodels i R

Samla in prediktioner

Funktionen collect_predictions()

  • Tar resultaten från last_fit()
    • Returnerar en tibble med prediktioner från testdatamängden
    • Prediktorkolumnen heter .pred
    • Utfallsvariabeln och övriga radidentifierarkolumner ingår
lm_last_fit %>% 
  collect_predictions()
# A tibble: 57 x 4
   id               .pred  .row   hwy
   <chr>            <dbl> <int> <int>
 1 train/test split  25.0     1    29
 2 train/test split  27.7     3    31
 3 train/test split  25.0     7    27
 4 train/test split  25.0     8    26
 5 train/test split  22.3     9    25
# ... with 47 more rows
Modellering med tidymodels i R

Nu kör vi en övning!

Modellering med tidymodels i R

Preparing Video For Download...