Zastanawiam się, jak właściwie podejść do szkolenia i testowania modelu LASSO przy użyciu glmnet w R?
- W szczególności zastanawiam się, jak to zrobić, jeśli brak zewnętrznego zestawu danych testowych wymaga użycia weryfikacji krzyżowej (lub innego podobnego podejścia) do przetestowania mojego modelu LASSO.
Pozwól mi rozbić mój scenariusz:
Mam tylko jeden zestaw danych do informowania i szkolenia mojego modelu glmnet. W rezultacie będę musiał użyć weryfikacji krzyżowej, aby podzielić moje dane i wygenerować sposób na przetestowanie mojego modelu.
Już używam cv.glmnet
, który zgodnie ze szczegółami pakietu :
Dokonuje k-krotnej walidacji krzyżowej dla glmnet, tworzy wykres i zwraca wartość lambda.
Czy walidacja krzyżowa jest wykonywana
cv.glmnet
po prostu w celu wybrania najlepszej lambda, czy też służy również jako bardziej ogólna procedura walidacji krzyżowej?- Innymi słowy, czy nadal muszę wykonać kolejny krok weryfikacji krzyżowej, aby „przetestować” mój model?
Pracuję z założeniem, że „tak, rozumiem”.
W takim razie jak podejść do weryfikacji krzyżowej mojego cv.glmnet
modelu?
Czy muszę to robić ręcznie, czy może
caret
funkcja jest przydatna w modelach glmnet?Czy używam dwóch koncentrycznych „pętli” walidacji krzyżowej? ... Czy używam „wewnętrznej pętli” CV poprzez,
cv.glmnet
aby określić najlepszą wartość lambda w każdym z k fałd „zewnętrznej pętli” przetwarzania k-krotnej walidacji krzyżowej ?Jeśli przeprowadzam walidację krzyżową mojego już
cv.glmnet
modelu walidacji krzyżowej , w jaki sposób oddzielić „najlepszy” model (od „najlepszej” wartości lambda) od każdegocv.glmnet
modelu w ramach każdej krotnie mojej „zewnętrznej pętli” walidacji krzyżowej?- Uwaga: definiuję „najlepszy” model jako model związany z lambda, który wytwarza MSE w ciągu 1 SE od minimum… tak jest
$lambda.1se
wcv.glmnet
modelu.
- Uwaga: definiuję „najlepszy” model jako model związany z lambda, który wytwarza MSE w ciągu 1 SE od minimum… tak jest
Kontekst:
Próbuję przewidzieć wiek drzewa („wiek”) na podstawie średnicy drzewa („D”), D ^ 2 i gatunku („czynnik (SPEC)”). [wynikowe równanie: Age ~ D + factor(SPEC) + D^2
]. Mam ~ 50 000 wierszy danych, ale dane są podłużne (śledzą osobniki w czasie) i składają się z ~ 65 gatunków.