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

Özel trainControl ve ayarlamayla glmnet

Videoda gördüğün gibi, glmnet modeli aslında aynı anda birçok modeli uydurur (paketin harika özelliklerinden biri). Bunu, modeldeki cezalandırma miktarını kontrol eden çok sayıda lambda değeri vererek kullanabilirsin. train() yeterince akıllıdır; her alpha değeri için yalnızca bir model uydurur ve tüm lambda değerlerini aynı anda, eşzamanlı uyum için geçirir.

glmnet modelleri için en sevdiğim ayar ızgarası şudur:

expand.grid(
  alpha = 0:1,
  lambda = seq(0.0001, 1, length = 100)
)

Bu ızgara, çok küçükten çok büyüğe kadar geniş bir lambda aralığını (tam 100 değer) araştırır. (Maksimum lambda değerini 10’a çıkarabilirsin, ama bu egzersizde 1 iyi bir üst sınır.)

Daha az modeli keşfetmek istersen daha kısa bir lambda dizisi kullanabilirsin. Örneğin, lambda = seq(0.0001, 1, length = 10) her bir alpha değeri için 10 model uydurur.

Bu tuneGrid ile iki tür cezalı modeli de incelersin: ridge regression ve lasso regression. alpha = 0 saf ridge regression, alpha = 1 ise saf lasso regression’dır. 0 ile 1 arasında bir alpha kullanarak iki modelin karışımını (yani bir elastic net) uydurabilirsin. Örneğin, alpha = 0.05 %95 ridge regression ve %5 lasso regression olur.

Bu soruda sadece 2 uç durumu – saf ridge ve saf lasso regression – aralarındaki farkları göstermek amacıyla inceleyeceksin.

Bu egzersiz

R ile caret kullanarak Machine Learning

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • overfit verisinde y yanıt değişkeni, diğer tüm değişkenler açıklayıcı değişkenler olacak şekilde bir glmnet modeli eğit. Önceki egzersizdeki özel trainControl’ünü (myControl) kullandığından emin ol. Ayrıca, alpha = 0:1 ve her bir alpha değeri için 0.0001 ile 1 arasında 20 lambda değeri içeren özel bir tuneGrid kullan.
  • model’i konsola yazdır.
  • model[["results"]] içindeki ROC istatistiğinin max() değerini yazdır. Buna model[["results"]][["ROC"]] ile erişebilirsin.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Train glmnet with custom trainControl and tuning: model
model <- train(
  ___, 
  ___,
  tuneGrid = ___(
    ___,
    ___
  ),
  method = ___,
  trControl = ___
)

# Print model to console


# Print maximum ROC statistic
Kodu Düzenle ve Çalıştır