Interpretacja wykresów zmiennych LASSO

15

Jestem nowy w glmnetpakiecie i nadal nie jestem pewien, jak interpretować wyniki. Czy ktoś mógłby mi pomóc przeczytać poniższy wykres śledzenia?

Wykres uzyskiwano, wykonując następujące czynności:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

wprowadź opis zdjęcia tutaj

Mayou
źródło

Odpowiedzi:

20

Na obu wykresach każda kolorowa linia reprezentuje wartość przyjmowaną przez inny współczynnik w twoim modelu. lambda jest wagą przypisaną do terminu regularyzacji (norma L1), więc gdy lambda zbliża się do zera, funkcja utraty twojego modelu zbliża się do funkcji utraty OLS. Oto jeden ze sposobów określenia funkcji utraty LASSO w celu uzyskania tego konkretnego:

βlzasso=argmin [RS.S.(β)+λL1-Norm(β)]

Dlatego, gdy lambda jest bardzo mała, rozwiązanie LASSO powinno być bardzo zbliżone do rozwiązania OLS, a wszystkie współczynniki znajdują się w modelu. Gdy lambda rośnie, termin regularyzacji ma coraz większy wpływ i zobaczysz mniej zmiennych w swoim modelu (ponieważ coraz więcej współczynników będzie miało wartość zerową).

Jak wspomniałem powyżej, norma L1 jest terminem regularyzacji dla LASSO. Być może lepszym sposobem na to jest to, że oś x jest maksymalną dopuszczalną wartością, jaką może przyjąć norma L1 . Więc kiedy masz małą normę L1, masz dużo regularyzacji. Dlatego norma L1 równa zero daje pusty model, a wraz ze wzrostem normy L1 zmienne „wejdą” do modelu, ponieważ ich współczynniki przyjmą wartości niezerowe.

Wykres po lewej i wykres po prawej pokazują w zasadzie to samo, tylko w różnych skalach.

David Marks
źródło
2
Bardzo fajna odpowiedź, dzięki! Czy można wyprowadzić „najlepsze predyktory” z powyższych wykresów, tj. Model końcowy?
Mayou
4
Nie, musisz przeprowadzić walidację krzyżową lub inną procedurę walidacji; powie ci, która wartość normy L1 (lub równoważnie, który log (lambda)) daje model o najlepszej zdolności predykcyjnej.
JAW
11
Jeśli próbujesz określić swoje najsilniejsze predyktory, możesz zinterpretować wykres jako dowód, że zmienne, które wchodzą do modelu wcześniej, są najbardziej przewidywalne, a zmienne, które wchodzą do modelu później, są mniej ważne. Jeśli chcesz mieć „najlepszy model”, na ogół można to znaleźć w drodze weryfikacji krzyżowej. Sugerowana jest tutaj powszechna metoda osiągnięcia tego celu przy użyciu pakietu glmnet : stats.stackexchange.com/a/68350/8451 . Ja zdecydowanie polecam zapoznanie się z krótką Lasso rozdział w ESLII (3.4.2 i 3.4.3), który można pobrać za darmo: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx
@David Marx, do czego odnoszą się liczby na górze fabuły? jak wybrać najlepszy model poprzez walidację krzyżową.
jeza
@DavidMarx minęło trochę czasu, ale dla każdego, kto się nad tym zastanawia, jest to liczba współczynników przy tej wadze, które nie mają wartości zerowej.
Ian Belcher,