R'de birini dışarıda bırakma çapraz doğrulaması (örneklerle)
Bir modelin veri seti üzerindeki performansını değerlendirmek için modelin yaptığı tahminlerin gözlemlenen verilerle ne kadar iyi eşleştiğini ölçmemiz gerekir.
Bunu yapmak için yaygın olarak kullanılan bir yöntem , Birini Dışarıda Bırakma Çapraz Doğrulama (LOOCV) olarak bilinir ve aşağıdaki yaklaşımı kullanır:
1. Biri hariç tüm gözlemleri eğitim setinin bir parçası olarak kullanarak, bir veri setini bir eğitim seti ve bir test seti olarak bölün.
2. Yalnızca eğitim setindeki verileri kullanarak bir model oluşturun.
3. Modelden hariç tutulan gözlemin yanıt değerini tahmin etmek için modeli kullanın ve ortalama karesel hatayı (MSE) hesaplayın.
4. Bu işlemi n kez tekrarlayın. Test MSE’sini tüm test MSE’lerinin ortalaması olarak hesaplayın.
LOOCV’yi R’de çalıştırmanın en kolay yolu, R’deki caret kütüphanesindeki trainControl() fonksiyonunu kullanmaktır.
Bu eğitimde, R’de belirli bir model için LOOCV gerçekleştirmek üzere bu işlevin nasıl kullanılacağına dair hızlı bir örnek sunulmaktadır.
Örnek: R’de Birini Dışarıda Bırakma Çapraz Doğrulaması
R’de aşağıdaki veri kümesine sahip olduğumuzu varsayalım:
#create data frame df <- data.frame(y=c(6, 8, 12, 14, 14, 15, 17, 22, 24, 23), x1=c(2, 5, 4, 3, 4, 6, 7, 5, 8, 9), x2=c(14, 12, 12, 13, 7, 8, 7, 4, 6, 5)) #view data frame df y x1 x2 6 2 14 8 5 12 12 4 12 14 3 13 14 4 7 15 6 8 17 7 7 22 5 4 24 8 6 23 9 5
Aşağıdaki kod , çoklu doğrusal regresyon modelinin R’deki bu veri kümesine nasıl sığdırılacağını ve modelin performansını değerlendirmek için LOOCV’nin nasıl gerçekleştirileceğini gösterir:
library (caret) #specify the cross-validation method ctrl <- trainControl(method = " LOOCV ") #fit a regression model and use LOOCV to evaluate performance model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl) #view summary of LOOCV print(model) Linear Regression 10 samples 2 predictors No pre-processing Resampling: Leave-One-Out Cross-Validation Summary of sample sizes: 9, 9, 9, 9, 9, 9, ... Resampling results: RMSE Rsquared MAE 3.619456 0.6186766 3.146155 Tuning parameter 'intercept' was held constant at a value of TRUE
Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:
- 10 model oluşturmak için 10 farklı örnek kullanıldı. Her modelde 2 yordayıcı değişken kullanılmıştır.
- Hiçbir ön işlem yapılmadı. Yani modelleri yerleştirmeden önce verileri hiçbir şekilde ölçeklendirmedik .
- 10 örneği oluşturmak için kullandığımız yeniden örnekleme yöntemi, Birini Dışarıda Bırakma çapraz doğrulamaydı.
- Her eğitim seti için örneklem büyüklüğü 9’du.
- RMSE: kök ortalama kare hatası. Bu, model tarafından yapılan tahminler ile gerçek gözlemler arasındaki ortalama farkı ölçer. RMSE ne kadar düşük olursa, model gerçek gözlemleri o kadar doğru tahmin edebilir.
- Rsquared: Bu, model tarafından yapılan tahminler ile gerçek gözlemler arasındaki korelasyonun bir ölçüsüdür. R-kare değeri ne kadar yüksek olursa, model gerçek gözlemleri o kadar doğru tahmin edebilir.
- MAE: Ortalama mutlak hata. Bu, model tarafından yapılan tahminler ile gerçek gözlemler arasındaki ortalama mutlak farktır. MAE ne kadar düşük olursa, model gerçek gözlemleri o kadar doğru tahmin edebilir.
Sonuçta sağlanan üç ölçümün her biri (RMSE, R-kare ve MAE), bize modelin yayınlanmamış veriler üzerindeki performansı hakkında fikir verir.
Uygulamada, hangi modelin en düşük test hatası oranlarını ürettiğine ve dolayısıyla kullanılacak en iyi model olduğuna karar vermek için genellikle birkaç farklı model uydururuz ve burada sunulan sonuçların sağladığı üç ölçümü karşılaştırırız.