Bağıl hata
Bu egzersizde, bağıl hatayı mutlak hatayla karşılaştıracaksın. Modelleme amacıyla, bağıl hatayı şöyle tanımlıyoruz:
$$ rel = \frac{(y - pred)}{y} $$
Yani hata, gerçek sonuca göredir. Bir modelin toplam bağıl hatasını bağıl kök ortalama kare hatayla ölçeceksin:
$$ rmse_{rel} = \sqrt(\overline{rel^2}) $$
burada \(\overline{rel^2}\), \(rel^2\) değerlerinin ortalamasıdır.
fdata adlı örnek (oyuncak) veri kümesi önceden yüklendi. Şu sütunları içeriyor:
y: bir modelin tahmin etmesi gereken gerçek çıktı; bunu, bir müşterinin mağazandaki bir ziyarette harcayacağı para miktarı olarak hayal et.pred:ydeğerini tahmin eden bir modelin tahminleri.label: kategorik:ydeğerininsmall(küçük) ya dalarge(büyük) alışveriş yapan bir popülasyondan gelip gelmediği.
Hangi modelin "daha iyi" olduğunu bilmek istiyorsun: small alışverişleri tahmin eden mi, yoksa large alışverişleri tahmin eden mi.
Bu egzersiz, kursun bir parçasıdır
R'de Supervised Learning: Regresyon
Egzersiz talimatları
- Veriyi incelemek için boşlukları doldur. Büyük alışverişlerin genelde küçüklerden yaklaşık 100 kat daha büyük olduğuna dikkat et.
- Hata sütunlarını oluşturmak için boşlukları doldur:
- Artığı
y - predolarak tanımla. - Bağıl hatayı
residual / yolarak tanımla.
- Artığı
- RMSE ve bağıl RMSE'yi hesaplamak ve karşılaştırmak için boşlukları doldur.
- Mutlak hatalar nasıl karşılaştırılıyor? Bağıl hatalar nasıl?
- Tahminlerin gerçek sonuçlara karşı grafiğini incele.
- Sence hangi model "daha iyi"?
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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")