İlgili özellikleri seçmek ve doğrusal bir regresyon modeli oluşturmak için GLM ve Elastic Net'i kullanmak isterim (yani, hem öngörme hem de anlama, bu nedenle göreceli olarak az sayıda parametreyle bırakılmak daha iyi olur). Çıkış süreklidir. Bu var başına genler 50 olguda. Paket hakkında okuyordum , ancak uygulanacak adımlar konusunda% 100 emin değilim:glmnet
Lambda seçmek için CV yapın:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) giriş verisine bakıldığında farklı bir alfa değeri seçer misiniz?
(S2) Modeli oluşturmadan önce başka bir şey yapmam gerekir mi?Modeli
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
takın : (Q3) "kovaryans" tan daha iyi bir şey var mı?
(S4) Eğer lambda CV tarafından seçildiyse, bu adım neden gereklinlambda=
?
(Q5) daha iyi kullanmaktırlambda.min
yalambda.1se
?Hangi parametrelerin düştüğünü görmek için katsayıları elde edin ("."):
predict(model, type="coefficients")
Yardım sayfasında çok var
predict
yöntemleri (örneğinpredict.fishnet
,predict.glmnet
,predict.lognet
, vs). Ancak herhangi bir "düz" örnek gördüğüm gibi tahmin ediyor.
(S6) Meli kullandığımpredict
veyapredict.glmnet
veya başka?
Düzenleme yöntemleri hakkında okuduklarıma rağmen, R ve bu istatistik paketlerinde oldukça yeniyim, bu yüzden sorunumu koda uyarlayıp uyarlamadığımdan emin olmak zor. Herhangi bir öneri kabul edilecektir.
UPDATE
göre "Daha önce de belirtildiği gibi, sınıf trenin bir amacı adı verilen bir eleman içerir finalModel
bu kullanarak, bu nesne, yeni numune için tahminler üretmek için geleneksel bir şekilde kullanılabilir. Yeniden örnekleme tarafından seçilen ayar parametre değerleri ile donatılmış model, modelin tahmin fonksiyonu. "
Kullanarak caret
ayarlamak için alfa ve lambda hem:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
fitM
Önceki adım 2'nin yerini alıyor mu ? Öyleyse, type.gaussian="naive",lambda=cv$lambda.min/1se
şimdi glmnet seçenekleri ( ) nasıl belirtilir ?
Ve aşağıdaki predict
adımı, ben yerine model
hiç fitM
?
Eğer yaparsam
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
hiç anlamlı değil mi veya yanlış bir şekilde her iki paket bilgisini karıştırıyor muyum?