Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für eine Lasso-Regression in Python

Beispiel für eine Lasso-Regression in Python

WBOY
WBOYOriginal
2023-06-10 20:52:551770Durchsuche

Lasso-Regression ist eine beliebte lineare Regressionsmethode, die beim maschinellen Lernen verwendet wird und darauf abzielt, das am besten passende Modell zu finden, indem irrelevante Merkmalsvariablen ignoriert werden. In diesem Artikel wird die Implementierung der Lasso-Regression in Python vorgestellt und ein tatsächlicher Datensatz zur Demonstration bereitgestellt.

Einführung in die Lasso-Regression

Die Lasso-Regression ist eine Methode zur Lösung gewöhnlicher Kleinste-Quadrate-Probleme durch Hinzufügen eines Strafterms zur Zielfunktion. Dieser Strafterm wird mithilfe der L1-Regularisierung (auch Lasso-Strafe genannt) implementiert und hat die folgende Form:

$J(eta)= rac{1}{2n}sum_{i=1}^{n}( y_i- sum_{j=1}^{p}X_{ij} eta_j)^2 + lpha sum_{j=1}^{p}|$

wobei $y$ die Antwortvariable ist, $X$ ist die unabhängige Variablenmatrix, $eta$ ist der Modellkoeffizient, $n$ ist die Anzahl der Stichproben, $p$ ist die Anzahl der Features und $lpha$ ist der Strafparameter. Der schwierige Teil der Lasso-Regression ist das nichtkonvexe Optimierungsproblem des Strafterms.

Eine Möglichkeit, die Lasso-Regression zu implementieren, besteht darin, sie mithilfe des Koordinatenabstiegsalgorithmus (CD) zu lösen. Die Grundidee besteht darin, dass in jeder Iteration nur ein Koeffizient geändert wird. Auf diese Weise umgeht der CD-Algorithmus geschickt das nichtkonvexe Optimierungsproblem des Strafterms.

Python-Lasso-Regressionsimplementierung

Python bietet viele Bibliotheken für maschinelles Lernen, wie z. B. Scikit-learn, mit denen sich die Lasso-Regression problemlos implementieren lässt.

Importieren Sie zunächst die erforderlichen Bibliotheken wie folgt:

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

Als nächstes laden wir den Bostoner Immobilienpreisdatensatz und normalisieren ihn:

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)

Dann implementieren wir die Lasso-Regression mit LassoCV in Scikit-learn. Das Modell führt automatisch eine Kreuzvalidierung durch und wählt den optimalen $lpha$-Wert aus.

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)

Abschließend geben wir den resultierenden optimalen $lpha$-Wert und die Modellkoeffizienten aus:

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)

Vollständiges Codebeispiel:

import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler

boston = load_boston()
X = boston.data
y = boston.target
X = StandardScaler().fit_transform(X)

lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000)
lasso_reg.fit(X, y)

print('Best alpha:', lasso_reg.alpha_)
print('Model coefficients:', lasso_reg.coef_)

Die Ausgabe lautet wie folgt:

Best alpha: 0.10000000000000002
Model coefficients: [-0.89521162  1.08556604  0.14359222  0.68736347 -2.04113155  2.67946138
  0.01939491 -3.08179223  2.63754058 -2.05806301 -2.05202597  0.89812875
 -3.73066641]

Dies zeigt, dass wir durch Lasso-Regression die Genauigkeit von bestimmen können Boston Das beste Modell für die Vorhersage von Immobilienpreisen und zum Extrahieren der Merkmale, die für die Antwortvariable am relevantesten sind.

Fazit

Dieser Artikel stellt die Implementierung der Lasso-Regression in Python vor und demonstriert die Anwendung dieser Methode anhand eines tatsächlichen Datensatzes. Die Lasso-Regression ist eine sehr nützliche lineare Regressionstechnik, die sich besonders für die Verarbeitung hochdimensionaler Daten eignet. Bei praktischen Problemen können Techniken wie Kreuzvalidierung und Standardisierung verwendet werden, um die Modellleistung zu optimieren und die relevantesten Merkmale zu extrahieren.

Das obige ist der detaillierte Inhalt vonBeispiel für eine Lasso-Regression in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn