Relativer Fehler
In dieser Übung vergleichst du relativen mit absoluten Fehlern. Für das Modellieren definieren wir den relativen Fehler als
$$ rel = \frac{(y - pred)}{y} $$
also den Fehler relativ zum wahren Ergebnis. Den gesamten relativen Fehler eines Modells misst du mit der Wurzel des mittleren quadratischen relativen Fehlers:
$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$
wobei \(\overline{rel^2}\) der Mittelwert von \(rel^2\) ist.
Der Beispiel-Datensatz fdata wurde bereits geladen. Er enthält die Spalten:
y: der wahre Zielwert, den ein Modell vorhersagen soll; stell dir vor, es ist der Betrag, den ein Kunde bei einem Besuch in deinem Laden ausgibt.pred: die Vorhersagen eines Modells, dasyprognostiziert.label: kategorisch: obyaus einer Population mitsmall(kleinen) oderlarge(großen) Einkäufen stammt.
Du möchtest wissen, welches Modell „besser“ ist: das für die small-Einkäufe oder das für die large-Einkäufe.
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Fülle die Lücken aus, um die Daten zu untersuchen. Achte darauf, dass große Einkäufe etwa 100-mal so groß sind wie kleine.
- Fülle die Lücken aus, um Fehlerspalten zu erstellen:
- Definiere das Residuum als
y - pred. - Definiere den relativen Fehler als
residual / y.
- Definiere das Residuum als
- Fülle die Lücken aus, um RMSE und relatives RMSE zu berechnen und zu vergleichen.
- Wie vergleichen sich die absoluten Fehler? Die relativen Fehler?
- Sieh dir das Diagramm von Vorhersagen gegenüber Ergebnis an.
- Deiner Meinung nach: Welches Modell ist „besser“?
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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")