Porównanie RMSE i pierwiastka średniego kwadratowego błędu względnego
W tym ćwiczeniu pokażesz, że zastosowanie transformacji logarytmicznej do zmiennej pieniężnej przed modelowaniem poprawia średni błąd względny (ale zwiększa RMSE) w porównaniu z bezpośrednim modelowaniem tej zmiennej. Porównasz wyniki modelu model.log z poprzedniego ćwiczenia z modelem (model.abs), który dopasowuje dochód bezpośrednio.
Zbiory danych income_train i income_test zostały wstępnie wczytane wraz z twoim modelem model.log.
Dostępny jest również:
model.abs: model, który bezpośrednio dopasowuje dochód do zmiennych wejściowych przy użyciu formułyIncome2005 ~ Arith + Word + Parag + Math + AFQT
To ćwiczenie jest częścią kursu
Nadzorowane uczenie maszynowe w R: regresja
Instrukcje do ćwiczenia
- Uzupełnij luki, aby dodać przewidywania z modeli do zbioru
income_test.- Pamiętaj, żeby zastosować funkcję wykładniczą do przewidywań z modelu
model.log, aby cofnąć transformację logarytmiczną!
- Pamiętaj, żeby zastosować funkcję wykładniczą do przewidywań z modelu
- Uzupełnij luki, aby użyć
pivot_longer()na przewidywaniach i obliczyć reszty oraz błąd względny. - Uzupełnij luki, aby obliczyć RMSE i względne RMSE dla przewidywań.
- Który model ma większy błąd bezwzględny? Który ma większy błąd względny?
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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