Modelprestaties beoordelen

Modelleren met tidymodels in R

David Svancer

Data Scientist

Input voor yardstick-functies

Alle yardstick-functies vereisen een tibble met modelresultaten

  • Kolom met de echte uitkomstwaarden
    • hwy voor mpg-data
  • Kolom met modelvoorspellingen
    • .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
Modelleren met tidymodels in R

Root mean squared error (RMSE)

RMSE schat de gemiddelde voorspellingsfout

  • Berekend met rmse() uit yardstick
    • Neemt een tibble met modelresultaten
    • truth is de kolom met echte uitkomsten
    • estimate is de kolom met voorspelde uitkomsten
mpg_test_results %>% 
  rmse(truth = hwy, estimate = .pred)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard        1.93
Modelleren met tidymodels in R

R-kwadraat-metriek

Meet de gekwadrateerde correlatie tussen echte en voorspelde waarden

  • Ook wel de determinatiecoëfficiënt
  • Loopt van 0 tot 1
    • Als alle voorspellingen gelijk zijn aan de echte waarden, is R-kwadraat 1
  • Berekend met rsq() uit 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
Modelleren met tidymodels in R

R-kwadraat-plots

Visualisatie van de R-kwadraat-metriek

  • Modelvoorspellingen vs. echte uitkomst
  • De lijn y = x
    • Stelt R-kwadraat van 1 voor
  • Helpt mogelijke prestatieproblemen vinden
    • Niet-lineaire patronen
    • Gebieden met slechte voorspellingen

Mpg-model R-kwadraat-plot

Modelleren met tidymodels in R

R-kwadraat-plots tekenen

R-kwadraat-plots maken met ggplot2

  • Tibble met modelresultaten
  • 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')

Mpg-model R-kwadraat-plot

Modelleren met tidymodels in R

Model fitten vereenvoudigen

De functie last_fit()

  • Neemt een modelspecificatie, modelformule en datasplitsing
  • Voert het volgende uit:
    1. Maakt train- en testsets
    2. Past het model op de trainingsdata
    3. Berekent metrics en voorspellingen op de testdata
    4. Geeft een object met alle resultaten terug
lm_last_fit <- lm_model %>% 
  last_fit(hwy ~ cty, 
           split = mpg_split)
Modelleren met tidymodels in R

Metrics verzamelen

De functie collect_metrics()

  • Neemt de resultaten van last_fit()
    • Geeft een tibble terug met prestatiemetrics op de testset
  • Standaardmetrics voor regressie
    • RMSE
    • R-kwadraat
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
Modelleren met tidymodels in R

Voorspellingen verzamelen

De functie collect_predictions()

  • Neemt de resultaten van last_fit()
    • Geeft een tibble met testvoorspellingen
    • Voorspellingenkolom heet .pred
    • Uitkomst en andere rij-ID-kolommen inbegrepen
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
Modelleren met tidymodels in R

Laten we wat modellen evalueren!

Modelleren met tidymodels in R

Preparing Video For Download...