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 proy.label: kategorická proměnná: říká, zda hodnotaypochází z populace zákazníků ssmall(malými) nebolarge(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
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.
- Definuj reziduál jako
- 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")