Czy funkcja Caret Train dla Glmnet sprawdza krzyżowo zarówno dla alfa, jak i lambda?

20

Czy caretpakiet R sprawdza poprawność krzyżową dla obu modeli alphai lambdadla glmnetmodelu? Uruchamianie tego kodu

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)

Dziennik treningu wygląda następująco.

Fold10.Rep3: alpha=1.0, lambda=NA 

Co lambda=NAznaczy

mrquestion
źródło
3
Jak mogę przekazać family = „dwumianowy” i type.measure = „auc” do modelu glmnet za pomocą pociągu?
diugalde

Odpowiedzi:

16

train dostosowuje oba.

Zasadniczo potrzebujesz tylko alphapodczas treningu i możesz uzyskać prognozy dotyczące różnych wartości lambdaużytkowania predict.glmnet. Może wartość lambda = "all"lub coś innego byłoby bardziej pouczające.

Max

topepo
źródło
1
Jak mogę określić sekwencję wartości alfa? Bez podania sekwencji lambda?
diugalde
Coś w stylu: alpha.seq = seq (0,1, .01) Nie musisz używać powyższej metody. Zobacz dokumentację karetki
Redeyes10
12

Stare pytanie, ale ostatnio musiałem poradzić sobie z tym problemem i znalazłem to pytanie jako odniesienie.

Oto alternatywne podejście:

Winieta glmnet ( https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html ) konkretnie rozwiązuje ten problem, zalecając określenie fałdowania z krzyżową weryfikacją za pomocą argumentu foldids i sprawdzenie na siatce . Używa tych samych folderów cv do sprawdzania dla każdego w twojej siatce.λαλα

Może to być lepsze niż jednoczesne sprawdzanie poprawności i ponieważ cv.glmnet sprawdza poprawność za pomocą „ciepłego startu”, aby wybrać a nie tylko losowo wybierając tj. Przyspieszając sprawdzanie poprawności i zwiększając prawdopodobieństwo wystąpienia optymalna w twojej siatce (ponieważ drobne siatki są droższe obliczeniowo).αλλλλ>0λ

Redeyes10
źródło
To jest ostatnio lepsza odpowiedź
javadba