Galat relatif
Dalam latihan ini, Anda akan membandingkan galat relatif dengan galat absolut. Untuk keperluan pemodelan, kita akan mendefinisikan galat relatif sebagai
$$ rel = \frac{(y - pred)}{y} $$
artinya, galat tersebut relatif terhadap nilai keluaran yang sebenarnya. Anda akan mengukur galat relatif keseluruhan dari sebuah model menggunakan root mean squared relative error:
$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$
di mana \(\overline{rel^2}\) adalah rata-rata dari \(rel^2\).
Himpunan data contoh (mainan) fdata telah dimuat sebelumnya. Data ini mencakup kolom:
y: keluaran sebenarnya yang diprediksi oleh suatu model; bayangkan ini adalah jumlah uang yang akan dibelanjakan pelanggan saat berkunjung ke toko Anda.pred: prediksi dari sebuah model yang memprediksiy.label: kategorikal: apakahyberasal dari populasi yang melakukan pembeliansmallataularge.
Anda ingin mengetahui model mana yang melakukan pekerjaan lebih “baik”: yang memprediksi pembelian small, atau yang memprediksi pembelian large.
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Regresi
Petunjuk latihan
- Lengkapi bagian yang kosong untuk menelaah data. Perhatikan bahwa pembelian besar cenderung sekitar 100 kali lebih besar daripada pembelian kecil.
- Lengkapi bagian yang kosong untuk membuat kolom galat:
- Definisikan residual sebagai
y - pred. - Definisikan galat relatif sebagai
residual / y.
- Definisikan residual sebagai
- Lengkapi bagian yang kosong untuk menghitung dan membandingkan RMSE dan RMSE relatif.
- Bagaimana perbandingan galat absolutnya? Bagaimana dengan galat relatifnya?
- Telaah plot prediksi versus keluaran.
- Menurut Anda, model mana yang lebih “baik”?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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")