C: eğitim parametrelerini kontrol etmek için traincontrol nasıl kullanılır?
Bir modelin bir veri kümesine ne kadar iyi uyduğunu değerlendirmek için, daha önce hiç görmediği gözlemlerdeki performansını analiz etmemiz gerekir.
Bunu başarmanın en yaygın yollarından biri, aşağıdaki yaklaşımı kullanan k-katlı çapraz doğrulamayı kullanmaktır:
1. Bir veri kümesini rastgele olarak yaklaşık olarak eşit büyüklükte k gruba veya “katlamaya” bölün.
2. Tutucu set olarak kıvrımlardan birini seçin. Şablonu kalan k-1 kıvrımlarına göre ayarlayın. Gerilmiş kattaki gözlemler üzerinden MSE testini hesaplayın.
3. Her seferinde farklı bir kümeyi dışlama kümesi olarak kullanarak bu işlemi k kez tekrarlayın.
4. Genel test MSE’sini k test MSE’sinin ortalaması olarak hesaplayın.
R’de k-katlı çapraz doğrulama gerçekleştirmenin en kolay yolu, R’deki şapka kütüphanesindeki trainControl() ve train() işlevlerini kullanmaktır.
trainControl() işlevi, eğitim parametrelerini belirlemek için kullanılır (örneğin, kullanılacak çapraz doğrulama türü, kullanılacak katlama sayısı, vb.) ve train() işlevi, modeli gerçekten verilere sığdırmak için kullanılır. .
Aşağıdaki örnek, trainControl() ve train() işlevlerinin pratikte nasıl kullanılacağını gösterir.
Örnek: R’de trainControl() nasıl kullanılır?
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
Şimdi bu veri setine çoklu doğrusal regresyon modelini sığdırmak için lm() fonksiyonunu kullandığımızı varsayalım; tahmin değişkenleri olarak x1 ve x2’yi ve yanıt değişkeni olarak y’yi kullanıyoruz:
#fit multiple linear regression model to data fit <- lm(y ~ x1 + x2, data=df) #view model summary summary(fit) Call: lm(formula = y ~ x1 + x2, data = df) Residuals: Min 1Q Median 3Q Max -3.6650 -1.9228 -0.3684 1.2783 5.0208 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 21.2672 6.9927 3.041 0.0188 * x1 0.7803 0.6942 1.124 0.2981 x2 -1.1253 0.4251 -2.647 0.0331 * --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 3.093 on 7 degrees of freedom Multiple R-squared: 0.801, Adjusted R-squared: 0.7441 F-statistic: 14.09 on 2 and 7 DF, p-value: 0.003516
Model çıktısındaki katsayıları kullanarak uygun regresyon modelini yazabiliriz:
y = 21,2672 + 0,7803*(x 1 ) – 1,1253(x 2 )
Bu modelin görünmeyen gözlemlerde ne kadar iyi performans gösterdiğine dair bir fikir edinmek için k-katlı çapraz doğrulamayı kullanabiliriz.
Aşağıdaki kod, 5 katlama ( number=5 ) kullanan k katlı çapraz doğrulamayı ( method=”cv” ) belirtmek için düzeltme işareti paketinin trainControl() işlevinin nasıl kullanılacağını gösterir.
Daha sonra k-katlı çapraz doğrulamayı gerçekleştirmek için bu trainControl() fonksiyonunu train() fonksiyonuna aktarırız:
library (caret) #specify the cross-validation method ctrl <- trainControl(method = " cv ", number = 5 ) #fit a regression model and use k-fold CV to evaluate performance model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl) #view summary of k-fold CV print (model) Linear Regression 10 samples 2 predictors No pre-processing Resampling: Cross-Validated (5 fold) Summary of sample sizes: 8, 8, 8, 8, 8 Resampling results: RMSE Rsquared MAE 3.612302 1 3.232153 Tuning parameter 'intercept' was held constant at a value of TRUE
Sonuçtan, her seferinde 8 gözlemlik bir örneklem büyüklüğü kullanılarak modelin 5 kez uydurulduğunu görebiliriz.
Her seferinde model, tutulan 2 gözlemin değerlerini tahmin etmek için kullanıldı ve her seferinde aşağıdaki ölçümler hesaplandı:
- 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.
- 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 beş bileşen için RMSE ve MAE değerlerinin ortalaması görüntülenir:
- RMSE: 3.612302
- MAE: 3.232153
Bu metrikler bize modelin yeni veriler üzerindeki performansı hakkında fikir veriyor.
Uygulamada, genellikle birkaç farklı model yerleştiririz ve görünmeyen veriler üzerinde hangi modelin en iyi performansı gösterdiğini belirlemek için bu ölçümleri karşılaştırırız.
Örneğin, bir polinom regresyon modelini yerleştirebilir ve RMSE ve MAE ölçümlerinin çoklu doğrusal regresyon modeliyle nasıl karşılaştırıldığını görmek için K-katlı çapraz doğrulama gerçekleştirebiliriz.
Not #1: Bu örnekte k=5 katlamayı seçiyoruz, ancak siz istediğiniz sayıda katlamayı seçebilirsiniz. Pratikte genellikle 5 ile 10 kat arasında seçim yaparız, çünkü bu, güvenilir test hatası oranları üreten en uygun kat sayısıdır.
Not #2 : trainControl() işlevi birçok potansiyel argümanı kabul eder. Bu işleve ilişkin tüm belgeleri burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimler eğitim modelleri hakkında ek bilgi sağlar:
K-Fold Çapraz Doğrulamaya Giriş
Bir-Dışarıda Bırakma Çapraz Doğrulamasına Giriş
Makine öğreniminde aşırı uyum nedir?