LinearRegression#
- class sklearn.linear_model.LinearRegression(*, fit_intercept=True, copy_X=True, tol=1e-06, n_jobs=None, positive=False)[Quelle]#
Normales Kleinste-Quadrate-Linearmodell.
LinearRegression passt ein lineares Modell mit Koeffizienten w = (w1, …, wp) an, um die Summe der quadrierten Residuen zwischen den beobachteten Zielwerten im Datensatz und den vom linearen Ansatz vorhergesagten Zielwerten zu minimieren.
- Parameter:
- fit_interceptbool, Standardwert=True
Ob der Achsenabschnitt für dieses Modell berechnet werden soll. Wenn auf False gesetzt, wird kein Achsenabschnitt in den Berechnungen verwendet (d.h. die Daten werden als zentriert erwartet).
- copy_Xbool, Standardwert=True
Wenn True, wird X kopiert; andernfalls kann es überschrieben werden.
- tolfloat, Standardwert=1e-6
Die Präzision der Lösung (
coef_) wird durchtolbestimmt, welches ein anderes Konvergenzkriterium für denlsqr-Solver spezifiziert.tolwird alsatolundbtolvonscipy.sparse.linalg.lsqrgesetzt, wenn auf sparse Trainingsdaten angepasst wird. Dieser Parameter hat keine Auswirkung, wenn auf dichten Daten angepasst wird.Hinzugefügt in Version 1.7.
- n_jobsint, default=None
Die Anzahl der für die Berechnung zu verwendenden Jobs. Dies bringt nur bei ausreichend großen Problemen eine Geschwindigkeitssteigerung, d.h. wenn erstens
n_targets > 1und zweitensXsparse ist oder wennpositiveaufTruegesetzt ist.Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backendKontext.-1bedeutet, alle Prozessoren zu verwenden. Siehe Glossar für weitere Details.- positivebool, Standardwert=False
Wenn auf
Truegesetzt, werden die Koeffizienten zu positiven Werten gezwungen. Diese Option wird nur für dichte Arrays unterstützt.Für einen Vergleich zwischen einem linearen Regressionsmodell mit positiven Einschränkungen für die Regressionskoeffizienten und einer linearen Regression ohne solche Einschränkungen siehe Non-negative least squares.
Hinzugefügt in Version 0.24.
- Attribute:
- coef_array der Form (n_features,) oder (n_targets, n_features)
Geschätzte Koeffizienten für das lineare Regressionsproblem. Wenn mehrere Zielwerte während des Fits übergeben werden (y 2D), ist dies ein 2D-Array der Form (n_targets, n_features), während es, wenn nur ein Zielwert übergeben wird, ein 1D-Array der Länge n_features ist.
- rank_int
Rang der Matrix
X. Nur verfügbar, wennXdicht ist.- singular_array der Form (min(X, y),)
Singuläre Werte von
X. Nur verfügbar, wennXdicht ist.- intercept_float oder array der Form (n_targets,)
Unabhängiger Term im linearen Modell. Auf 0.0 gesetzt, wenn
fit_intercept = False.- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
Siehe auch
RidgeRidge-Regression adressiert einige Probleme der gewöhnlichen kleinsten Quadrate, indem sie eine Strafe für die Größe der Koeffizienten mit l2-Regularisierung auferlegt.
LassoLasso ist ein lineares Modell, das dünnbesetzte Koeffizienten mit l1-Regularisierung schätzt.
ElasticNetElastic-Net ist ein lineares Regressionsmodell, das mit sowohl l1- als auch l2-Norm-Regularisierung der Koeffizienten trainiert wird.
Anmerkungen
Aus Implementierungssicht handelt es sich hierbei nur um plain Ordinary Least Squares (
scipy.linalg.lstsq) oder Non Negative Least Squares (scipy.optimize.nnls), verpackt als Prädiktorobjekt.Beispiele
>>> import numpy as np >>> from sklearn.linear_model import LinearRegression >>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]]) >>> # y = 1 * x_0 + 2 * x_1 + 3 >>> y = np.dot(X, np.array([1, 2])) + 3 >>> reg = LinearRegression().fit(X, y) >>> reg.score(X, y) 1.0 >>> reg.coef_ array([1., 2.]) >>> reg.intercept_ np.float64(3.0) >>> reg.predict(np.array([[3, 5]])) array([16.])
- fit(X, y, sample_weight=None)[Quelle]#
Lineares Modell anpassen.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsdaten.
- yarray-like der Form (n_samples,) oder (n_samples, n_targets)
Zielwerte. Wird bei Bedarf in den Datentyp von X umgewandelt.
- sample_weightarray-like der Form (n_samples,), Standardwert=None
Individuelle Gewichte für jede Stichprobe.
Hinzugefügt in Version 0.17: Parameter sample_weight Unterstützung für LinearRegression.
- Gibt zurück:
- selfobject
Angepasster Schätzer.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[Quelle]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- predict(X)[Quelle]#
Vorhersage mit dem linearen Modell.
- Parameter:
- Xarray-like oder sparse matrix, Form (n_samples, n_features)
Stichproben.
- Gibt zurück:
- Carray, Form (n_samples,)
Gibt vorhergesagte Werte zurück.
- score(X, y, sample_weight=None)[Quelle]#
Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.
Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Summe der quadrierten Residuen
((y_true - y_pred)** 2).sum()und \(v\) die gesamte Summe der quadrierten Abweichungen vom Mittelwert((y_true - y_true.mean()) ** 2).sum()ist. Der bestmögliche Score ist 1.0 und er kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert vonyvorhersagt, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Score von 0.0 erzielen.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form
(n_samples, n_samples_fitted), wobein_samples_fitteddie Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Werte für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
\(R^2\) von
self.predict(X)bezogen aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufruf von
scoreauf einem Regressor verwendet wird, nutztmultioutput='uniform_average'ab Version 0.23, um mit dem Standardwert vonr2_scorekonsistent zu sein. Dies beeinflusst diescore-Methode aller Multi-Output-Regressoren (außerMultiOutputRegressor).
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LinearRegression[Quelle]#
Konfiguriert, ob Metadaten für die
fit-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinfit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_params(**params)[Quelle]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LinearRegression[Quelle]#
Konfiguriert, ob Metadaten für die
score-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
Galeriebeispiele#
Principal Component Regression vs. Partial Least Squares Regression
Vorhersagen von einzelnen und abstimmenden Regressionsmodellen plotten
Versagen des maschinellen Lernens bei der Inferenz kausaler Effekte
Gewöhnliche kleinste Quadrate und Ridge Regression
Gesichtsvervollständigung mit Multi-Output-Schätzern
Verwendung von KBinsDiscretizer zur Diskretisierung kontinuierlicher Merkmale