Funktioniert der Caret Train für glmnet für Alpha und Lambda?

20

Kann das R- caretPaket sowohl für das Modell alphaals auch lambdafür das glmnetModell eine Kreuzvalidierung durchführen? Diesen Code ausführen,

eGrid <- expand.grid(.alpha = (1:10) * 0.1, 
                     .lambda = (1:10) * 0.1)

Control <- trainControl(method = "repeatedcv",repeats = 3,verboseIter =TRUE)

netFit <- train(x =train_features, y = y_train,
          method = "glmnet",
          tuneGrid = eGrid,
          trControl = Control)

Das Trainingsprotokoll sieht so aus.

Fold10.Rep3: alpha=1.0, lambda=NA 

Was lambda=NAbedeutet

Frage
quelle
3
Wie kann ich family = "binomial" und type.measure = "auc" mit train an das glmnet-Modell übergeben?
Diugalde

Antworten:

16

train stimmt über beide ab.

Grundsätzlich braucht man nur alphabeim Training und kann Vorhersagen über verschiedene Nutzungswerte lambdaabrufen predict.glmnet. Vielleicht wäre ein Wert von lambda = "all"oder etwas anderes informativer.

Max

topepo
quelle
1
Wie kann ich eine Folge von Alpha-Werten angeben? Ohne eine Lambda-Sequenz anzugeben?
Diugalde
So etwas wie: alpha.seq = seq (0,1, .01) Sie müssen die oben angegebene Methode nicht genau anwenden. Siehe Caret-Dokumentation
Redeyes10
12

Alte Frage, aber ich musste mich kürzlich mit diesem Problem auseinandersetzen und fand diese Frage als Referenz.

Hier ist ein alternativer Ansatz:

λαλα

αλλλλ>0λ

Redeyes10
quelle
Dies ist in letzter Zeit die bessere Antwort
Javadba