Estou tentando determinar qual alfa usar na minha glmnet
função, mas o arquivo de ajuda diz-me:
Observe que o cv.glmnet NÃO procura valores para alfa. Um valor específico deve ser fornecido, caso contrário, alfa = 1 é assumido por padrão. Se os usuários também desejam validar cruzadamente o alfa, eles devem chamar o cv.glmnet com um vetor pré-calculado foldid e, em seguida, usar esse mesmo vetor de dobra em chamadas separadas para o cv.glmnet com valores diferentes de alfa.
No entanto, eu não entendo:
- Qual é o vetor / argumento foldid.
- Como criar o vetor foldid
- Como usar o argumento foldid.
Qualquer assistência com isso seria muito apreciada!
r
lasso
ridge-regression
glmnet
theforestecologist
fonte
fonte
Respostas:
fold.id
permite que o usuário pré-especifique as dobras de validação cruzadacv.glmnet
. Por exemplo, se eu tiver alguns dadosPassar na coluna indicada como
fold.id
argumento paracv.glmnet
fazer com que (por exemplo) as duas primeiras observações residam na mesma dobra e a terceira e quarta observações na mesma dobra (diferente).Os autores estão sugerindo que, se você desejar escolher entre uma coleção discreta de base em uma estimativa de validação cruzada de algum erro com uma ideal , é recomendável usar a mesma estrutura de dobra em cada de suas validações cruzadas ao determinar cada .λ α λ αα λα λα
fonte
rbinom(now(X), n.folds, rep(1/n.folds, n.folds))
.De acordo com a Glmnet Vignette , uma maneira de configurar o
foldid
glmnet é:E, em seguida, aplique a uma série de alfas:
A
sample()
função basicamente permite gerar um vetor de números aleatórios no intervalo que você fornece (= 1: nfolds) para o comprimento da variável de resposta matriz y . Dessa maneira, você atribui cada uma das linhas da matriz de entrada a uma dobra aleatória (mas agora definida).fonte