PLSRegression#

class sklearn.cross_decomposition.PLSRegression(n_components=2, *, scale=True, max_iter=500, tol=1e-06, copy=True)[Quelle]#

PLS-Regression.

PLSRegression ist auch bekannt als PLS2 oder PLS1, abhängig von der Anzahl der Zielvariablen.

Einen Vergleich mit anderen Kreuzzerlegungsalgorithmen finden Sie unter Vergleich von Kreuzzerlegungsmethoden.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.8.

Parameter:
n_componentsint, Standard=2

Anzahl der zu behaltenden Komponenten. Sollte im Bereich [1, n_features] liegen.

scalebool, Standard=True

Ob X und y skaliert werden sollen.

max_iterint, Standard=500

Die maximale Anzahl von Iterationen der Potenzmethode, wenn algorithm='nipals'. Wird andernfalls ignoriert.

tolfloat, Standard=1e-06

Die Toleranz, die als Konvergenzkriterium in der Potenzmethode verwendet wird: Der Algorithmus stoppt, sobald die quadrierte Norm von u_i - u_{i-1} kleiner als tol ist, wobei u dem linken singulären Vektor entspricht.

copybool, Standard=True

Ob X und y vor der Anwendung von Zentrierung und optionaler Skalierung in fit kopiert werden sollen. Wenn False, werden diese Operationen inplace durchgeführt, wodurch beide Arrays modifiziert werden.

Attribute:
x_weights_ndarray von der Form (n_features, n_components)

Die linken singulären Vektoren der Kreuzkovarianzmatrizen jeder Iteration.

y_weights_ndarray von der Form (n_targets, n_components)

Die rechten singulären Vektoren der Kreuzkovarianzmatrizen jeder Iteration.

x_loadings_ndarray von der Form (n_features, n_components)

Die Ladungen von X.

y_loadings_ndarray von der Form (n_targets, n_components)

Die Ladungen von y.

x_scores_ndarray von Shape (n_samples, n_components)

Die transformierten Trainingsstichproben.

y_scores_ndarray von Shape (n_samples, n_components)

Die transformierten Trainingsziele.

x_rotations_ndarray von der Form (n_features, n_components)

Die Projektionsmatrix, die zum Transformieren von X verwendet wird.

y_rotations_ndarray von der Form (n_targets, n_components)

Die Projektionsmatrix, die zum Transformieren von y verwendet wird.

coef_ndarray von Shape (n_target, n_features)

Die Koeffizienten des linearen Modells, so dass y als y = X @ coef_.T + intercept_ angenähert wird.

intercept_ndarray von der Form (n_targets,)

Die Achsenabschnitte des linearen Modells, so dass y als y = X @ coef_.T + intercept_ angenähert wird.

Hinzugefügt in Version 1.1.

n_iter_Liste der Form (n_components,)

Anzahl der Iterationen der Potenzmethode für jede Komponente.

n_features_in_int

Anzahl der während des fits gesehenen Merkmale.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen der während fit gesehenen Merkmale. Nur definiert, wenn X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

Siehe auch

PLSCanonical

Partial Least Squares Transformer und Regressor.

Beispiele

>>> from sklearn.cross_decomposition import PLSRegression
>>> X = [[0., 0., 1.], [1.,0.,0.], [2.,2.,2.], [2.,5.,4.]]
>>> y = [[0.1, -0.2], [0.9, 1.1], [6.2, 5.9], [11.9, 12.3]]
>>> pls2 = PLSRegression(n_components=2)
>>> pls2.fit(X, y)
PLSRegression()
>>> y_pred = pls2.predict(X)

Für einen Vergleich zwischen PLS-Regression und PCA siehe Principal Component Regression vs Partial Least Squares Regression.

fit(X, y)[Quelle]#

Modell an Daten anpassen.

Parameter:
Xarray-like der Form (n_samples, n_features)

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Prädiktoren ist.

yarray-like der Form (n_samples,) oder (n_samples, n_targets)

Zielvektoren, wobei n_samples die Anzahl der Stichproben und n_targets die Anzahl der Antwortvariablen ist.

Gibt zurück:
selfobject

Angepasstes Modell.

fit_transform(X, y=None)[Quelle]#

Lernt und wendet die Dimensionsreduktion auf die Trainingsdaten an.

Parameter:
Xarray-like der Form (n_samples, n_features)

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Prädiktoren ist.

yarray-ähnlich der Form (n_samples, n_targets), Standard=None

Zielvektoren, wobei n_samples die Anzahl der Stichproben und n_targets die Anzahl der Antwortvariablen ist.

Gibt zurück:
selfndarray von der Form (n_samples, n_components)

Gibt x_scores zurück, wenn y nicht angegeben ist, andernfalls (x_scores, y_scores).

get_feature_names_out(input_features=None)[Quelle]#

Holt die Ausgabemerkmale für die Transformation.

Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen: ["klassenname0", "klassenname1", "klassenname2"].

Parameter:
input_featuresarray-like von str oder None, default=None

Wird nur verwendet, um die Feature-Namen mit den in fit gesehenen Namen zu validieren.

Gibt zurück:
feature_names_outndarray von str-Objekten

Transformierte Merkmalnamen.

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.

inverse_transform(X, y=None)[Quelle]#

Daten zurück in ihren ursprünglichen Raum transformieren.

Parameter:
Xarray-ähnlich von der Form (n_samples, n_components)

Neue Daten, wobei n_samples die Anzahl der Stichproben und n_components die Anzahl der PLS-Komponenten ist.

yarray-ähnlich von der Form (n_samples,) oder (n_samples, n_components)

Neues Ziel, wobei n_samples die Anzahl der Stichproben und n_components die Anzahl der PLS-Komponenten ist.

Gibt zurück:
X_originalndarray von der Form (n_samples, n_features)

Gibt die rekonstruierten X-Daten zurück.

y_originalndarray von der Form (n_samples, n_targets)

Gibt das rekonstruierte X-Ziel zurück. Nur zurückgegeben, wenn y angegeben ist.

Anmerkungen

Diese Transformation ist nur exakt, wenn n_components=n_features.

predict(X, copy=True)[Quelle]#

Ziele der gegebenen Stichproben vorhersagen.

Parameter:
Xarray-like der Form (n_samples, n_features)

Stichproben.

copybool, Standard=True

Ob X kopiert oder inplace normalisiert werden soll.

Gibt zurück:
y_predndarray von der Form (n_samples,) oder (n_samples, n_targets)

Gibt vorhergesagte Werte zurück.

Anmerkungen

Dieser Aufruf erfordert die Schätzung einer Matrix der Form (n_features, n_targets), was in hochdimensionalen Räumen ein Problem darstellen kann.

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 totale Summe der quadrierten Residuen ((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 von y vorhersagt, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Score von 0.0 erhalten.

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), wobei n_samples_fitted die 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 auf y.

Anmerkungen

Der \(R^2\)-Score, der beim Aufruf von score auf einem Regressor verwendet wird, nutzt ab Version 0.23 multioutput='uniform_average', um konsistent mit dem Standardwert von r2_score zu sein. Dies beeinflusst die score-Methode aller Multioutput-Regressoren (mit Ausnahme von MultiOutputRegressor).

set_output(*, transform=None)[Quelle]#

Ausgabecontainer festlegen.

Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.

Parameter:
transform{“default”, “pandas”, “polars”}, default=None

Konfiguriert die Ausgabe von transform und fit_transform.

  • "default": Standardausgabeformat eines Transformers

  • "pandas": DataFrame-Ausgabe

  • "polars": Polars-Ausgabe

  • None: Die Transformationskonfiguration bleibt unverändert

Hinzugefügt in Version 1.4: Die Option "polars" wurde hinzugefügt.

Gibt zurück:
selfestimator instance

Schätzer-Instanz.

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_predict_request(*, copy: bool | None | str = '$UNCHANGED$') PLSRegression[Quelle]#

Konfiguriert, ob Metadaten für die predict-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=True aktiviert ist (siehe sklearn.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, an predict weitergegeben. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.

  • False: Metadaten werden nicht angefordert und die Meta-Schätzung übergibt sie nicht an predict.

  • 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:
copystr, True, False oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter copy in predict.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PLSRegression[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=True aktiviert ist (siehe sklearn.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, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • 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_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') PLSRegression[Quelle]#

Konfiguriert, ob Metadaten für die transform-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=True aktiviert ist (siehe sklearn.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, an transform weitergegeben. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.

  • False: Metadaten werden nicht angefordert und die Meta-Schätzung übergibt sie nicht an transform.

  • 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:
copystr, True, False oder None, Standard=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter copy in transform.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

transform(X, y=None, copy=True)[Quelle]#

Wendet die Dimensionsreduktion an.

Parameter:
Xarray-like der Form (n_samples, n_features)

Zu transformierende Stichproben.

yarray-ähnlich der Form (n_samples, n_targets), Standard=None

Zielvektoren.

copybool, Standard=True

Ob X und y kopiert oder inplace normalisiert werden sollen.

Gibt zurück:
x_scores, y_scoresarray-ähnlich oder Tupel von array-ähnlich

Gibt x_scores zurück, wenn y nicht angegeben ist, andernfalls (x_scores, y_scores).