MultiOutputClassifier#

class sklearn.multioutput.MultiOutputClassifier(estimator, *, n_jobs=None)[Quelle]#

Multi-Target-Klassifizierung.

Diese Strategie besteht darin, für jedes Ziel einen Klassifikator anzupassen. Dies ist eine einfache Strategie zur Erweiterung von Klassifikatoren, die standardmäßig keine Multi-Target-Klassifizierung unterstützen.

Parameter:
estimatorEstimator-Objekt

Ein Schätzerobjekt, das fit und predict implementiert. Eine Methode predict_proba wird nur dann verfügbar gemacht, wenn estimator diese implementiert.

n_jobsint oder None, optional (default=None)

Die Anzahl der parallel auszuführenden Jobs. fit, predict und partial_fit (falls vom übergebenen Schätzer unterstützt) werden für jedes Ziel parallelisiert.

Wenn einzelne Schätzer schnell trainiert oder vorhergesagt werden können, kann die Verwendung von n_jobs > 1 aufgrund des Parallelisierungsaufwands zu einer langsameren Leistung führen.

None bedeutet 1, es sei denn, Sie befinden sich in einem joblib.parallel_backend Kontext. -1 bedeutet die Verwendung aller verfügbaren Prozesse / Threads. Weitere Informationen finden Sie im Glossar.

Geändert in Version 0.20: Der Standardwert von n_jobs wurde von 1 auf None geändert.

Attribute:
classes_ndarray der Form (n_classes,)

Klassenbezeichnungen.

estimators_Liste von n_outputs Schätzern

Estimators, die für Vorhersagen verwendet werden.

n_features_in_int

Anzahl der während fit gesehenen Merkmale. Nur definiert, wenn der zugrunde liegende estimator ein solches Attribut nach dem Anpassen freigibt.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen von Merkmalen, die während fit gesehen wurden. Nur definiert, wenn die zugrunde liegenden Estimator ein solches Attribut nach dem Trainieren bereitstellen.

Hinzugefügt in Version 1.0.

Siehe auch

ClassifierChain

Ein Multi-Label-Modell, das binäre Klassifikatoren zu einer Kette anordnet.

MultiOutputRegressor

Passt einen Regressor pro Zielvariable an.

Beispiele

>>> import numpy as np
>>> from sklearn.datasets import make_multilabel_classification
>>> from sklearn.multioutput import MultiOutputClassifier
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_multilabel_classification(n_classes=3, random_state=0)
>>> clf = MultiOutputClassifier(LogisticRegression()).fit(X, y)
>>> clf.predict(X[-2:])
array([[1, 1, 1],
       [1, 0, 1]])
fit(X, Y, sample_weight=None, **fit_params)[Quelle]#

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.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte. Wenn None, dann werden die Stichproben gleich gewichtet. Nur unterstützt, wenn der zugrunde liegende Klassifikator Stichprobengewichte unterstützt.

**fit_paramsdict von String -> Objekt

Parameter, die an die estimator.fit Methode jedes Schritts übergeben werden.

Hinzugefügt in Version 0.23.

Gibt zurück:
selfobject

Gibt eine angepasste Instanz zurück.

get_metadata_routing()[Quelle]#

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)[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.

partial_fit(X, y, classes=None, sample_weight=None, **partial_fit_params)[Quelle]#

Passt inkrementell ein separates Modell für jede Klassen-Ausgabe an.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabedaten.

y{array-artig, spärliche Matrix} der Form (n_samples, n_outputs)

Multi-Output-Ziele.

classesListe von ndarray der Form (n_outputs,), default=None

Jedes Array sind eindeutige Klassen für eine Ausgabe in str/int. Kann über [np.unique(y[:, i]) for i in range(y.shape[1])] bezogen werden, wobei y die Zielmatrix des gesamten Datensatzes ist. Dieses Argument ist für den ersten Aufruf von partial_fit erforderlich und kann bei nachfolgenden Aufrufen weggelassen werden. Beachten Sie, dass y nicht alle Labels in classes enthalten muss.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte. Wenn None, dann werden die Stichproben gleich gewichtet. Nur unterstützt, wenn der zugrunde liegende Regressor Stichprobengewichte unterstützt.

**partial_fit_paramsdict von str -> object

An die Methode estimator.partial_fit jedes Unterestimators übergebene Parameter.

Nur verfügbar, wenn enable_metadata_routing=True ist. Siehe das Benutzerhandbuch.

Hinzugefügt in Version 1.3.

Gibt zurück:
selfobject

Gibt eine angepasste Instanz zurück.

predict(X)[Quelle]#

Sagt die Multi-Output-Variable mit einem Modell für jede Zielvariable voraus.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabedaten.

Gibt zurück:
y{array-artig, spärliche Matrix} der Form (n_samples, n_outputs)

Multi-Output-Ziele, die über mehrere Prädiktoren vorhergesagt werden. Hinweis: Für jeden Prädiktor werden separate Modelle generiert.

predict_proba(X)[Quelle]#

Gibt die Vorhersagewahrscheinlichkeiten für jede Klasse jeder Ausgabe zurück.

Diese Methode löst einen ValueError aus, wenn einer der Schätzer keine predict_proba-Methode hat.

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

Die Eingabedaten.

Gibt zurück:
pArray der Form (n_samples, n_classes) oder eine Liste von n_outputs solchen Arrays, wenn n_outputs > 1.

Die Klassenwahrscheinlichkeiten der Eingabesamplings. Die Reihenfolge der Klassen entspricht der im Attribut classes_.

Geändert in Version 0.19: Diese Funktion gibt jetzt eine Liste von Arrays zurück, deren Länge n_outputs ist, und jedes Array ist für diese bestimmte Ausgabe (n_samples, n_classes).

score(X, y)[Quelle]#

Gibt die durchschnittliche Genauigkeit auf den gegebenen Testdaten und Labels zurück.

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

Teststichproben.

yarray-artig der Form (n_samples, n_outputs)

Wahre Werte für X.

Gibt zurück:
scoresfloat

Mittlere Genauigkeit der vorhergesagten Ziele im Vergleich zu den wahren Zielen.

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputClassifier[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=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 fit übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

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

  • 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 fit.

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_partial_fit_request(*, classes: bool | None | str = '$UNCHANGED$', sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputClassifier[Quelle]#

Konfiguriert, ob Metadaten für die partial_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=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 an partial_fit übergeben, wenn sie bereitgestellt werden. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.

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

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

Metadaten-Routing für den Parameter klassen in partial_fit.

sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED

Metadaten-Routing für den Parameter sample_weight in partial_fit.

Gibt zurück:
selfobject

Das aktualisierte Objekt.