İ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.minyalambda.1se?Hangi parametrelerin düştüğünü görmek için katsayıları elde edin ("."):
predict(model, type="coefficients")Yardım sayfasında çok var
predictyöntemleri (örneğinpredict.fishnet,predict.glmnet,predict.lognet, vs). Ancak herhangi bir "düz" örnek gördüğüm gibi tahmin ediyor.
(S6) Meli kullandığımpredictveyapredict.glmnetveya 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 finalModelbu 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 caretayarlamak 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 predictadımı, ben yerine modelhiç 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?