Amarengo

Articles and news

szybki Tutorial na temat regresji LASSO z przykładem

regresja LASSO oznacza najmniej bezwzględny skurcz i operator selekcji. Algorytm jest kolejną odmianą regresji liniowej, podobnie jak regresja grzbietowa. Używamy regresji lasso, gdy mamy dużą liczbę zmiennych predykcyjnych.

przegląd – regresja Lasso

regresja Lasso jest parsymonicznym modelem, który wykonuje regularyzację L1. Regularyzacja L1 dodaje karę równoważną absolutnej wielkości współczynników regresji i stara się je zminimalizować. Równanie lasso jest podobne do regresji grzbietu i wygląda tak, jak podano poniżej.

 LS Obj + λ (sum of the absolute values of coefficients)

tutaj cel jest następujący:
jeśli λ = 0, otrzymujemy te same współczynniki co regresja liniowa
jeśli λ = zmienia się duże, wszystkie współczynniki są zmniejszone w kierunku zera

dwa modele, lasso i regresja grzbietowa, są prawie do siebie podobne. Jednak w lasso współczynniki odpowiedzialne za dużą wariancję są przeliczane na zero. Z drugiej strony współczynniki są tylko skurczone, ale nigdy nie są zerowe w regresji grzbietu.

Analiza regresji Lasso jest również używana do wyboru zmiennych, ponieważ model nakłada współczynniki niektórych zmiennych, aby zmniejszyć się w kierunku zera.

co oznacza duża liczba zmiennych?

  1. duża liczba oznacza, że model ma tendencję do nadmiernego dopasowania. Teoretycznie minimum dziesięć zmiennych może powodować problem z przepełnianiem.
  2. w obliczu wyzwań obliczeniowych z powodu obecności n liczby zmiennych. Chociaż, biorąc pod uwagę dzisiejszą moc obliczeniową systemów, sytuacja ta pojawia się rzadko.

poniższy diagram jest wizualną interpretacją porównującą regresję OLS i lasso.

LASSO nie jest zbyt dobry w obsłudze zmiennych, które wykazują korelację między nimi, a tym samym może czasami wykazywać bardzo dzikie zachowanie.

Trening modelu regresji Lasso

trening modelu regresji lasso jest dokładnie taki sam jak w regresji grzbietu. Musimy zidentyfikować optymalną wartość lambda, a następnie użyć tej wartości do wytrenowania modelu. Aby to osiągnąć, możemy użyć tej samej funkcji glmnet i przekazać argumentalpha = 1. Kiedy mijamy alpha = 0, glmnet() uruchamia regresję grzbietu, a kiedy mijamy alpha = 0.5, glmnet uruchamia inny rodzaj modelu, który nazywa się elastyczną siatką i jest kombinacją regresji grzbietu i lasso.

  1. używamy funkcji cv.glmnet() do identyfikacji optymalnej wartości lambda
  2. Wyodrębnij najlepszy model lambda i najlepszy model
  3. Przebuduj model za pomocą funkcji glmnet()
  4. Użyj funkcji predict do przewidywania wartości w przyszłych danych

w tym przykładzie użyjemy funkcji predict 6808> zbiór danych do przewidywania płodności na podstawie wskaźników społeczno-ekonomicznych za rok 1888.

Updated-fragment kodu został zaktualizowany, aby poprawić niektóre nazwy zmiennych– 28/05/2020

# Output 0.3981072

korzystając z tej wartości, ponownie wytrenujmy model lasso.

na koniec łączymy wartości przewidywane i rzeczywiste, aby zobaczyć dwie wartości obok siebie, a następnie możesz użyć formuły R-kwadrat, aby sprawdzić wydajność modelu. Uwaga – należy obliczyć wartości R-kwadrat zarówno dla pociągu, jak i dla zestawu danych testowych.

final <- cbind(y_var, pred)# Checking the first six obshead(final)

dzielenie wzoru R kwadrat

funkcja podana poniżej jest tylko orientacyjna i musisz podać rzeczywiste i przewidywane wartości na podstawie zestawu danych.

actual <- test$actualpreds <- test$predictedrss <- sum((preds - actual) ^ 2)tss <- sum((actual - mean(actual)) ^ 2)rsq <- 1 - rss/tssrsq

pobieranie listy ważnych zmiennych

aby uzyskać listę ważnych zmiennych, wystarczy zbadać współczynniki beta końcowego najlepszego modelu.

# Inspecting beta coefficientscoef(lasso_best)
# Output6 x 1 sparse Matrix of class "dgCMatrix" s0(Intercept) 66.5365304Agriculture -0.0489183Examination . Education -0.9523625Catholic 0.1188127Infant.Mortality 0.4994369

model wskazuje, że współczynniki Rolnictwa i Edukacji zostały zmniejszone do zera. W ten sposób pozostaną nam trzy zmienne, a mianowicie: egzamin, katolicyzm i Niemowlę.Śmiertelność

w tym rozdziale nauczyliśmy się, jak zbudować regresję lasso przy użyciu tego samego pakietu glmnet, którego użyliśmy do zbudowania regresji grzbietu. Widzieliśmy również, jaka jest różnica między grzbietem a lasso. W następnym rozdziale omówimy, jak przewidzieć zmienną dychotomiczną za pomocą regresji logistycznej.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.