Začněte nyníZačněte zdarma

Relativní chyba

V tomto cvičení porovnáš relativní chybu s absolutní chybou. Pro účely modelování definujeme relativní chybu takto:

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

čili chyba je vyjádřena ve vztahu ke skutečné hodnotě. Celkovou relativní chybu modelu budeme měřit pomocí relativní střední kvadratické chyby:

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

kde \(\overline{rel^2}\) je průměr hodnot \(rel^2\).

Ukázkový dataset fdata je již načtený. Obsahuje tyto sloupce:

  • y: skutečná výstupní hodnota, kterou má model předpovědět; představ si, že jde o částku, kterou zákazník utratí při návštěvě tvého obchodu.
  • pred: předpovědi modelu pro y.
  • label: kategorická proměnná: říká, zda hodnota y pochází z populace zákazníků s small (malými) nebo large (velkými) nákupy.

Chceš zjistit, který model funguje „lépe": ten, který předpovídá small nákupy, nebo ten pro large nákupy.

Toto cvičení je součástí kurzu

Supervised Learning in R: Regression

Zobrazit kurz

Pokyny k cvičení

  • Doplň chybějící části kódu a prozkoumej data. Všimni si, že velké nákupy bývají přibližně 100× větší než malé.
  • Doplň chybějící části kódu a vytvoř sloupce s chybami:
    • Definuj reziduál jako y - pred.
    • Definuj relativní chybu jako residual / y.
  • Doplň chybějící části kódu, spočítej RMSE a relativní RMSE a porovnej je.
    • Jak se liší absolutní chyby? A relativní chyby?
  • Prohlédni si graf předpovědí oproti skutečným hodnotám.
    • Který model podle tebe funguje „lépe"?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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")
Upravit a spustit kód