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


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


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λ


Dies ist in letzter Zeit die bessere Antwort
Javadba
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.