ÎncepețiÎncepe gratuit

Eroarea relativă

În acest exercițiu, vei compara eroarea relativă cu eroarea absolută. În scopul modelării, vom defini eroarea relativă astfel:

$$ rel = \frac{(y - pred)}{y} $$

cu alte cuvinte, eroarea este raportată la valoarea reală a rezultatului. Vei măsura eroarea relativă globală a unui model folosind eroarea relativă pătratică medie (RMSE relativ):

$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$

unde \(\overline{rel^2}\) reprezintă media valorilor \(rel^2\).

Setul de date exemplu (de tip „toy") fdata a fost preîncărcat. Acesta include următoarele coloane:

  • y: valoarea reală de prezis de un model; imaginează-ți că reprezintă suma pe care un client o cheltuiește la fiecare vizită în magazinul tău.
  • pred: predicțiile unui model care estimează y.
  • label: variabilă categorică – indică dacă y provine dintr-o populație care face achiziții small (mici) sau large (mari).

Vrei să afli care model funcționează „mai bine": cel care prezice achizițiile small sau cel care prezice achizițiile large.

Acest exercițiu face parte din cursul

Învățare supervizată în R: Regresia

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează spațiile libere pentru a examina datele. Observă că achizițiile mari tind să fie de aproximativ 100 de ori mai mari decât cele mici.
  • Completează spațiile libere pentru a crea coloanele de eroare:
    • Definește rezidualul ca y - pred.
    • Definește eroarea relativă ca residual / y.
  • Completează spațiile libere pentru a calcula și compara RMSE și RMSE relativ.
    • Cum se compară erorile absolute? Dar cele relative?
  • Examinează graficul predicțiilor față de valorile reale.
    • În opinia ta, care model funcționează „mai bine"?

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# fdata is available
summary(fdata)

# Examine the data: generate the summaries for the groups large and small:
fdata %>% 
    group_by(label) %>%     # group by small/large purchases
    summarize(min  = ___,   # min of y
              mean = ___,   # mean of y
              max  = ___)   # max of y

# Fill in the blanks to add error columns
fdata2 <- fdata %>% 
         group_by(label) %>%       # group by label
           mutate(residual = ___,  # Residual
                  relerr   = ___)  # Relative error

# Compare the rmse and rmse.rel of the large and small groups:
fdata2 %>% 
  group_by(label) %>% 
  summarize(rmse     = ___,   # RMSE
            rmse.rel = ___)   # Root mean squared relative error
            
# Plot the predictions for both groups of purchases
ggplot(fdata2, aes(x = pred, y = y, color = label)) + 
  geom_point() + 
  geom_abline() + 
  facet_wrap(~ label, ncol = 1, scales = "free") + 
  ggtitle("Outcome vs prediction")
Editează și rulează codul