RegressorChain#
- class sklearn.multioutput.RegressorChain(estimator=None, *, order=None, cv=None, random_state=None, verbose=False, base_estimator='deprecated')[source]#
Ein Multi-Label-Modell, das Regressionen zu einer Kette anordnet.
Jedes Modell macht eine Vorhersage in der durch die Kette spezifizierten Reihenfolge, wobei alle verfügbaren Features, die dem Modell übergeben werden, sowie die Vorhersagen von früheren Modellen in der Kette verwendet werden.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.20.
- Parameter:
- estimatorestimator
Der Basisschätzer, auf dem die Regressor-Kette aufgebaut ist.
- orderarray-like mit Form (n_outputs,) oder ‘random’, Standard=None
Wenn
None, wird die Reihenfolge durch die Reihenfolge der Spalten in der Label-Matrix Y bestimmt.order = [0, 1, 2, ..., Y.shape[1] - 1]
Die Reihenfolge der Kette kann explizit durch Angabe einer Liste von Ganzzahlen festgelegt werden. Zum Beispiel für eine Kette der Länge 5.
order = [1, 3, 2, 4, 0]
bedeutet, dass das erste Modell in der Kette Vorhersagen für Spalte 1 in der Y-Matrix macht, das zweite Modell Vorhersagen für Spalte 3 usw. macht.
Wenn order ‘random’ ist, wird eine zufällige Reihenfolge verwendet.
- cvint, Kreuzvalidierungsgenerator oder iterierbar, Standardwert=None
Bestimmt, ob Kreuzvalidierungs-Vorhersagen oder wahre Labels für die Ergebnisse früherer Schätzer in der Kette verwendet werden sollen. Mögliche Eingaben für cv sind
None, um wahre Labels beim Anpassen zu verwenden,
Integer, um die Anzahl der Folds in einem (Stratified)KFold anzugeben,
Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.
- random_stateint, RandomState-Instanz oder None, optional (Standard=None)
Wenn
order='random', bestimmt die Zufallszahlengenerierung für die Kettenreihenfolge. Zusätzlich steuert es den Zufalls-Seed, der bei jederbase_estimatorbei jeder Ketteniteration übergeben wird. Daher wird es nur verwendet, wennbase_estimatoreinenrandom_stateexponiert. Übergeben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg. Siehe Glossar.- verbosebool, default=False
Wenn True, wird der Fortschritt der Kette ausgegeben, sobald jedes Modell abgeschlossen ist.
Hinzugefügt in Version 1.2.
- base_estimatorestimator, Standard=”deprecated”
Verwenden Sie stattdessen
estimator.Veraltet seit Version 1.7:
base_estimatorist veraltet und wird in Version 1.9 entfernt. Verwenden Sie stattdessenestimator.
- Attribute:
- estimators_list
Eine Liste von Klonen des Basisschätzers.
- order_list
Die Reihenfolge der Labels in der Klassifikationskette.
- n_features_in_int
Anzahl der während des fit gesehenen Merkmale. Nur definiert, wenn der zugrunde liegende
base_estimatorein solches Attribut beim Anpassen exponiert.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
ClassifierChainÄquivalent für Klassifikation.
MultiOutputRegressorLernt jeden Output unabhängig anstatt eine Kette zu bilden.
Beispiele
>>> from sklearn.multioutput import RegressorChain >>> from sklearn.linear_model import LogisticRegression >>> logreg = LogisticRegression(solver='lbfgs') >>> X, Y = [[1, 0], [0, 1], [1, 1]], [[0, 2], [1, 1], [2, 0]] >>> chain = RegressorChain(logreg, order=[0, 1]).fit(X, Y) >>> chain.predict(X) array([[0., 2.], [1., 1.], [2., 0.]])
- fit(X, Y, **fit_params)[source]#
Passt das Modell an die Datenmatrix X und die Ziele Y an.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabedaten.
- Yarray-like mit Form (n_samples, n_classes)
Die Zielwerte.
- **fit_paramsdict von String -> Objekt
Parameter, die bei jedem Schritt der Regressor-Kette an die
fit-Methode übergeben werden.Hinzugefügt in Version 0.23.
- Gibt zurück:
- selfobject
Gibt eine angepasste Instanz zurück.
- get_metadata_routing()[source]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
Hinzugefügt in Version 1.3.
- Gibt zurück:
- routingMetadataRouter
Ein
MetadataRouter, der die Routing-Informationen kapselt.
- get_params(deep=True)[source]#
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)[source]#
Vorhersagen für die Datenmatrix X mit dem ClassifierChain-Modell.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabedaten.
- Gibt zurück:
- Y_predarray-like mit Form (n_samples, n_classes)
Die vorhergesagten Werte.
- score(X, y, sample_weight=None)[source]#
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 Summe der quadrierten Gesamtabweichungen((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 und dabei die Eingabemerkmale ignoriert, 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, benutztmultioutput='uniform_average'ab Version 0.23, um mit dem Standardwert vonr2_scorekonsistent zu bleiben. Dies beeinflusst diescore-Methode aller Multioutput-Regressoren (mit Ausnahme vonMultiOutputRegressor).
- set_params(**params)[source]#
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$') RegressorChain[source]#
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.