Funkcja R cv.glm (biblioteka: boot) oblicza szacowany błąd prognozy krotności K-krotności dla uogólnionych modeli liniowych i zwraca deltę. Czy warto używać tej funkcji do regresji lasso (biblioteka: glmnet), a jeśli tak, to w jaki sposób można ją przeprowadzić? Biblioteka glmnet używa weryfikacji krzyżowej, aby uzyskać najlepszy parametr zwrotny, ale nie znalazłem żadnego przykładu, który sprawdzałby krzyżowo końcowe równanie glmnet.
r
regression
cross-validation
lasso
glmnet
kalakaru
źródło
źródło
Odpowiedzi:
Przykładem tego, jak zrobić zwykły waniliowy walidacji krzyżowej na lasso w
glmnet
sprawiemtcars
zbioru danych.Załaduj zestaw danych.
Przygotuj funkcje (zmienne niezależne). Powinny być
matrix
klasowe. Najłatwiejszym sposobem na konwersjędf
zawierających zmienne jakościowematrix
jest użyciemodel.matrix
. Pamiętaj, że domyślnieglmnet
pasuje do przechwytywania, więc lepiej usuń przechwytywanie z matrycy modelu.Przygotuj odpowiedź (zmienna zależna). Kodujmy samochody powyżej średniej
mpg
jako „wydajne” („1”), a pozostałe jako nieefektywne („0”). Przelicz tę zmienną na współczynnik.Uruchom weryfikację krzyżową za pośrednictwem
cv.glmnet
. Będzie pobierałalpha=1
zglmnet
parametrów domyślnych , o co prosiłeś: regresja lasso.Analizując wyniki weryfikacji krzyżowej, możesz zainteresować się co najmniej 2 informacjami:
lambda, która minimalizuje błąd weryfikacji krzyżowej.
glmnet
faktycznie zapewnia 2 lambdas:lambda.min
ilambda.1se
. To twój osąd jako praktyczny statystyk, z którego możesz skorzystać.wynikające z tego współczynniki.
Zobacz kod R zgodnie z powyższymi instrukcjami:
Komentarze końcowe:
zauważ, że wyniki modelu nie mówią nic o istotności statystycznej współczynników, tylko wartości.
Penalizer l1 (lasso), o który prosiłeś, słynie z niestabilności, o czym świadczy ten post na blogu i pytanie o zmianę stosu . Lepszym sposobem może być również krzyżowa walidacja
alpha
, która pozwoliłaby ci wybrać odpowiednią kombinację penalizatorów l1 i l2.alternatywnym sposobem przeprowadzenia weryfikacji krzyżowej może być zwrócenie się do firmy Caret
train( ... method='glmnet')
i wreszcie najlepszym sposobem, aby dowiedzieć się więcej o
cv.glmnet
domyślnych ustawieniachglmnet
jest oczywiście?glmnet
konsola R.)))źródło