LoslegenKostenlos starten

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, das y prognostiziert.
  • label: kategorisch: ob y aus einer Population mit small (kleinen) oder large (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>
Kurs ansehen

Ü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.
  • 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")
Code bearbeiten und ausführen