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?
- Die große Zahl hier bedeutet, dass das Modell dazu neigt, zu passen. Theoretisch können mindestens zehn Variablen ein Überanpassungsproblem verursachen.
- 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.
- Wir verwenden die Funktion
cv.glmnet()
, um den optimalen Lambdawert zu identifizieren - Extrahieren Sie das beste Lambda und das beste Modell
- Erstellen Sie das Modell mit der Funktion
glmnet()
neu - 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.