Caret train funziona per glmnet con convalida incrociata sia per alpha che lambda?


20

Il caretpacchetto R esegue la convalida incrociata su entrambi alphae lambdaper il glmnetmodello? In esecuzione questo codice,

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)

Il registro di allenamento è simile al seguente.

Fold10.Rep3: alpha=1.0, lambda=NA 

Cosa lambda=NAsignifica?


3
Come posso passare family = "binomial" e type.measure = "auc" al modello glmnet usando train?
diugalde,

Risposte:


16

train si sintonizza su entrambi.

Fondamentalmente, è necessario solo alphadurante l'allenamento e è possibile ottenere previsioni su diversi valori di lambdautilizzo predict.glmnet. Forse un valore lambda = "all"o qualcos'altro sarebbe più informativo.

Max


1
Come posso specificare una sequenza di valori alfa? Senza dare una sequenza lambda?
diugalde,

Qualcosa del tipo: alpha.seq = seq (0,1, .01) Non è necessario utilizzare il metodo esatto sopra. Vedi la documentazione del cursore
Redeyes10

12

Vecchia domanda, ma di recente ho dovuto affrontare questo problema e ho trovato questa domanda come riferimento.

Ecco un approccio alternativo:

λαλα

αλλλλ>0λ


Questa è la risposta migliore più recentemente
javadba,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.