Amarengo

Articles and news

Kurzanleitung zur LASSO-Regression mit Beispiel

Die LASSO-Regression steht für Least Absolute Shrinkage und Selection Operator. Der Algorithmus ist eine weitere Variation der linearen Regression, genau wie die Ridge-Regression. Wir verwenden die Lasso-Regression, wenn wir eine große Anzahl von Prädiktorvariablen haben.

Übersicht – Lasso-Regression

Die Lasso-Regression ist ein sparsames Modell, das eine L1-Regularisierung durchführt. Die L1-Regularisierung fügt eine Strafe hinzu, die der absoluten Größe der Regressionskoeffizienten entspricht, und versucht, sie zu minimieren. Die Lasso-Gleichung ähnelt der Ridge-Regression und sieht wie folgt aus.

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

Hier lautet das Ziel wie folgt:
Wenn λ = 0 ist, erhalten wir die gleichen Koeffizienten wie die lineare Regression
Wenn λ = 0 groß ist, werden alle Koeffizienten auf Null geschrumpft

Die beiden Modelle Lasso und Ridge Regression sind einander fast ähnlich. Im Lasso werden jedoch die Koeffizienten, die für eine große Varianz verantwortlich sind, in Null umgewandelt. Auf der anderen Seite werden Koeffizienten nur geschrumpft, aber in der Gratregression niemals Null gemacht.

Die Lasso-Regressionsanalyse wird auch für die Variablenauswahl verwendet, da das Modell dazu führt, dass die Koeffizienten einiger Variablen gegen Null schrumpfen.

Was bedeutet eine große Anzahl von Variablen?

  1. Die große Zahl hier bedeutet, dass das Modell dazu neigt, zu passen. Theoretisch können mindestens zehn Variablen ein Überanpassungsproblem verursachen.
  2. Wenn Sie Rechenherausforderungen aufgrund des Vorhandenseins von n Variablen gegenüberstehen. Angesichts der heutigen Verarbeitungsleistung von Systemen tritt diese Situation jedoch selten auf.

Das folgende Diagramm ist die visuelle Interpretation, die OLS- und Lasso-Regression vergleicht.

Das LASSO ist nicht sehr gut im Umgang mit Variablen, die eine Korrelation zwischen ihnen zeigen, und kann daher manchmal sehr wildes Verhalten zeigen.

Training des Lasso-Regressionsmodells

Das Training des Lasso-Regressionsmodells ist genau das gleiche wie das der Ridge-Regression. Wir müssen den optimalen Lambdawert identifizieren und diesen Wert dann zum Trainieren des Modells verwenden. Um dies zu erreichen, können wir dieselbe glmnet -Funktion verwenden und dasalpha = 1 -Argument übergeben. Wenn wir alpha = 0 übergeben, führt glmnet() eine Gratregression aus, und wenn wir alpha = 0.5 übergeben, führt das glmnet eine andere Art von Modell aus, das als elastisches Netz bezeichnet wird und eine Kombination aus Grat- und Lasso-Regression darstellt.

  1. Wir verwenden die Funktion cv.glmnet(), um den optimalen Lambdawert zu identifizieren
  2. Extrahieren Sie das beste Lambda und das beste Modell
  3. Erstellen Sie das Modell mit der Funktion glmnet() neu
  4. Verwenden Sie die Funktion predict, um die Werte für zukünftige Daten vorherzusagen

In diesem Beispiel verwenden wir swiss Datensatz zur Vorhersage der Fruchtbarkeit basierend auf sozioökonomischen Indikatoren für das Jahr 1888.

Aktualisiert – Code-Snippet wurde aktualisiert, um einige Variablennamen zu korrigieren – 28/05/2020

# Output 0.3981072

Mit diesem Wert trainieren wir das Lasso-Modell erneut.

Schließlich kombinieren wir die vorhergesagten Werte und die tatsächlichen Werte, um die beiden Werte nebeneinander anzuzeigen, und dann können Sie die R-Quadrat-Formel verwenden, um die Modellleistung zu überprüfen. Hinweis: Sie müssen die R-Quadrat-Werte sowohl für das Zug- als auch für das Test-Dataset berechnen.

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

Teilen der R-Quadrat-Formel

Die unten angegebene Funktion ist nur indikativ und Sie müssen die tatsächlichen und vorhergesagten Werte basierend auf Ihrem Datensatz angeben.

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

Abrufen der Liste wichtiger Variablen

Um die Liste wichtiger Variablen zu erhalten, müssen wir nur die Beta-Koeffizienten des endgültigen besten Modells untersuchen.

# 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

Das Modell zeigt, dass die Koeffizienten von Landwirtschaft und Bildung auf Null geschrumpft sind. So bleiben uns drei Variablen, nämlich; Prüfung, Katholisch, und Kind.

In diesem Kapitel haben wir gelernt, wie man eine Lasso-Regression mit demselben glmnet-Paket erstellt, mit dem wir die Ridge-Regression erstellt haben. Wir haben auch gesehen, was der Unterschied zwischen dem Grat und dem Lasso ist. Im nächsten Kapitel werden wir diskutieren, wie man eine dichotome Variable mit logistischer Regression vorhersagt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.