Eu estou querendo saber como abordar adequadamente o treinamento e o teste de um modelo LASSO usando glmnet no R?
- Especificamente, estou pensando em como fazer isso, se a falta de um conjunto de dados de teste externo exigir que eu use a validação cruzada (ou outra abordagem semelhante) para testar meu modelo LASSO.
Deixe-me detalhar meu cenário:
Eu só tenho um conjunto de dados para informar e treinar meu modelo glmnet. Como resultado, terei que usar a validação cruzada para dividir meus dados e também gerar uma maneira de testar meu modelo.
Eu já estou usando cv.glmnet
, que de acordo com os detalhes do pacote :
Faz a validação cruzada k-fold para glmnet, produz um gráfico e retorna um valor para lambda.
A validação cruzada é realizada
cv.glmnet
simplesmente para escolher o melhor lambda ou também está servindo como um procedimento de validação cruzada mais geral?- Em outras palavras, ainda preciso executar outra etapa de validação cruzada para "testar" meu modelo?
Estou trabalhando com a suposição de que "sim, sim".
Sendo esse o caso, como abordar a validação cruzada do meu cv.glmnet
modelo?
Preciso fazer isso manualmente ou talvez a
caret
função seja útil para modelos glmnet?Utilizo dois "loops" concêntricos de validação cruzada? ... Utilizo um "loop interno" de CV
cv.glmnet
para determinar o melhor valor lambda dentro de cada uma das k dobras de um "loop externo" do processamento de validação cruzada de dobras k ?Se eu faço a validação cruzada do meu modelo já com validação cruzada
cv.glmnet
, como faço para isolar o modelo "melhor" (do "melhor" valor lambda) de cadacv.glmnet
modelo em cada dobra do meu "loop externo" de validação cruzada?- Nota: Estou definindo o "melhor" modelo como o modelo associado a um lambda que produz um MSE dentro de 1 SE do mínimo ... este é
$lambda.1se
ocv.glmnet
modelo.
- Nota: Estou definindo o "melhor" modelo como o modelo associado a um lambda que produz um MSE dentro de 1 SE do mínimo ... este é
Contexto:
Estou tentando prever a idade da árvore ("idade") com base no diâmetro da árvore ("D"), D ^ 2 e nas espécies ("fator (SPEC)"). [equação resultante: Age ~ D + factor(SPEC) + D^2
]. Eu tenho ~ 50K linhas de dados, mas os dados são longitudinais (rastreiam indivíduos através do tempo) e consistem em ~ 65 espécies.