MulaiMulai sekarang secara gratis

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 memprediksi y.
  • label: kategorikal: apakah y berasal dari populasi yang melakukan pembelian small atau large.

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

Lihat Kursus

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.
  • 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")
Edit dan Jalankan Kode