Vergleich von RMSE und Root-Mean-Squared Relativfehler
In dieser Übung zeigst du, dass das Log-Transformieren einer monetären Zielgröße vor dem Modellieren den mittleren relativen Fehler verbessert (aber den RMSE erhöht), verglichen mit dem direkten Modellieren der monetären Zielgröße. Du vergleichst die Ergebnisse von model.log aus der vorherigen Übung mit einem Modell (model.abs), das das Einkommen direkt modelliert.
Die Datensätze income_train und income_test wurden zusammen mit deinem Modell model.log vorab geladen.
Ebenfalls verfügbar:
model.abs: ein Modell, das das Einkommen direkt an die Inputs anpasst, mit der FormelIncome2005 ~ Arith + Word + Parag + Math + AFQT
Diese Übung ist Teil des Kurses
<Kurs>Überwachtes Lernen in R: Regression</Kurs>Übungsanweisungen
- Fülle die Lücken aus, um Vorhersagen der Modelle zu
income_testhinzuzufügen.- Vergiss nicht, bei den Vorhersagen von
model.logdie Exponentialfunktion anzuwenden, um die Log-Transformation rückgängig zu machen!
- Vergiss nicht, bei den Vorhersagen von
- Fülle die Lücken aus, um die Vorhersagen mit
pivot_longer()zu transformieren und die Residuen sowie den relativen Fehler zu berechnen. - Fülle die Lücken aus, um den RMSE und den relativen RMSE für die Vorhersagen zu berechnen.
- Welches Modell hat den größeren absoluten Fehler? Welches den größeren relativen Fehler?
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# fmla.abs is available
fmla.abs
# model.abs is available
summary(model.abs)
# Add predictions to the test set
income_test <- income_test %>%
mutate(pred.absmodel = ___(___, income_test), # predictions from model.abs
pred.logmodel = ___(___(___, income_test))) # predictions from model.log
# pivot_longer the predictions and calculate residuals and relative error
income_long <- income_test %>%
pivot_longer(names_to = 'modeltype', values_to = 'pred', cols=c('pred.absmodel', 'pred.logmodel')) %>%
mutate(residual = ___, # residuals
relerr = ___) # relative error
# Calculate RMSE and relative RMSE and compare
income_long %>%
group_by(modeltype) %>% # group by modeltype
summarize(rmse = ___, # RMSE
rmse.rel = ___) # Root mean squared relative error