Ö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ırEgzersiz talimatları
overfitverisindeyyanıt değişkeni, diğer tüm değişkenler açıklayıcı değişkenler olacak şekilde birglmnetmodeli eğit. Önceki egzersizdeki özeltrainControl’ünü (myControl) kullandığından emin ol. Ayrıca,alpha = 0:1ve her bir alpha değeri için 0.0001 ile 1 arasında 20lambdadeğeri içeren özel birtuneGridkullan.model’i konsola yazdır.model[["results"]]içindeki ROC istatistiğininmax()değerini yazdır. Bunamodel[["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