BaşlayınÜcretsiz başlayın

n-fold çapraz doğrulama ile bir modelleme prosedürünü değerlendir

Bu egzersizde, önceki egzersizde oluşturduğun splitPlan adlı 3 katlı çapraz doğrulama planını kullanarak, mpg$hwy değişkeninden mpg$cty değerlerini tahmin eden bir modelin tahminlerini üreteceksin.

Eğer eğitim verisi dframe ise, çerçeveye çapraz doğrulama tahminlerinden oluşan bir sütun eklemenin bir yolu şöyledir:

# Uygun uzunlukta bir sütun başlat
dframe$pred.cv <- 0 

# k kat sayısıdır
# splitPlan çapraz doğrulama planıdır

for(i in 1:k) {
  # i'inci bölmeyi al
  split <- splitPlan[[i]]

  # Bu bölmenin eğitim verisi üzerinde
  # bir model kur (bu örnekte lm)
  model <- lm(fmla, data = dframe[split$train,])

  # Bu bölmenin uygulama verisi üzerinde
  # tahminler yap
  dframe$pred.cv[split$app] <- predict(model, newdata = dframe[split$app,])
}

Çapraz doğrulama, tüm veriden kurulmuş bir modelin yeni veride ne kadar iyi performans göstereceğini öngörür. Test/eğitim ayrımında olduğu gibi, iyi bir modelleme prosedüründe çapraz doğrulama performansı ile Eğitim performansı birbirine yakın olmalıdır.

mpg veri çerçevesi, splitPlan adlı çapraz doğrulama planı ve rmse() fonksiyonu önceden yüklendi.

Bu egzersiz, kursun bir parçasıdır

R'de Supervised Learning: Regresyon

Kursa Göz Atın

Egzersiz talimatları

  • splitPlan içindeki 3 katlı çapraz doğrulama planını çalıştır ve tahminleri mpg$pred.cv sütununa yaz.
    • lm() ve cty ~ hwy formülünü kullan.
  • Tüm mpg verisi üzerinde bir lineer regresyon modeli kur (formül cty ~ hwy) ve tahminleri mpg$pred değişkenine ata.
  • Tam modelin tahminlerinin kök ortalama karesel hatasını (mpg$pred) elde etmek için rmse() kullan. rmse() fonksiyonunun iki argüman aldığını unutma: tahmin edilen değerler ve gerçek çıktı.
  • Çapraz doğrulama tahminlerinin kök ortalama karesel hatasını elde et. İki değer aşağı yukarı aynı mı?

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# mpg is available
summary(mpg)

# splitPlan is available
str(splitPlan)

# Run the 3-fold cross validation plan from splitPlan
k <- ___ # Number of folds
mpg$pred.cv <- 0 
for(i in ___) {
  split <- ___
  model <- lm(___, data = ___)
  mpg$pred.cv[___] <- predict(___, newdata = ___)
}

# Predict from a full model
mpg$pred <- ___(___(cty ~ hwy, data = mpg))

# Get the rmse of the full model's predictions
___(___, ___)

# Get the rmse of the cross-validation predictions
___(___, ___)
Kodu Düzenle ve Çalıştır