How to chose Lamba and Fraction in an elastic net model implemented with caret train? I have this model :
enet2_model <- train(
    x = train_glm[-1],
    y = train_glm[[1]],
    method     = "enet",
    preProcess = c("center", "scale"),
    metric     = "RMSE",
    maximize   = FALSE,
    trControl  = trainControl(
        method            = 'repeatedcv',
        number            = n_folds,
        repeats           = n_reps,
        search            = "grid",
        selectionFunction = "oneSE",
        savePredictions   = "final",
        seeds             = caret_seeds # note: use the same seed!!
    ),                   
    tuneGrid   = expand.grid(
        fraction = seq(
            from = 9e-2,
            to   = 5e-1,
            length.out = tune_length/2
        ),
        lambda = c(0, seq(
            from = 9e-3,
            to   = 1e-1,
            length.out = tune_length/2 - 1
        ))
    )
 )

I'm trying to understand by which criterion i have to choose correctly the range of lambda and Fraction looking at this kind of plot:

If you look at the plot you will notice a square in the upper left side. I want to chose the simpler model that is at one standard deviation from the best model that is clearly the one at the minimum point. The question is : how do I choose fraction and Lambda? Which criterion would you use?
In this plot I see (let's call this the 1std-model) the 1std-model to fall onto a curve that corresponds to a lambda with not the deepest minimun. So I decided to search further. So the question becomes: seeing that the 1std model falls onto a curve that does not correspond to the the curve with the deepest minimun could be a criterion to search other set of parameters to choose your lasso model?
I obtained this one and I think I could be satisfied. Am I wrong or am I thinking correctly?

 A: It may be an old question, but for you and others, who came across elastic net in the caret package, I would rely on lambda thus your weight decay mainly:
As you can also see here in this picture, which is similar to your plot, you are looking for a general turning point, or break even:
What you have done is mainly one technique in ML, 'narrowing down the model parameters'.
Like in the image you already found that the best lambda/weight decay is between 0.01 and 0.38750 [your orange lines in the first plot]. Then you are narrowing down the weight decay further. Fraction seems mostly identical. So it seems correct for me. We do not know but just with a keen eye to be sure where our minimum exactly lies and what our required parameters exactly are.
Imagine we have a ensemble method where we highlight the depth of the trees and we set it to 10, 20, and 30 and get 10 as the best estimator. Then we could try to narrow it down e.g. max_depth >= 5 & max_depth <=10. The only theory to derive how to choose lambda or weight decay here may be in terms of coefficient shrinkage. If you know you have high coeffs and you will need some shrinkage. maybe your need a higher penalty and thus a greater lambda. The rest is simple fiddling, as rigorous as it sounds. But in caret Enet you only have fraction and lambda for the tuning grid and thats it.
