ClassifierChain#
- class sklearn.multioutput.ClassifierChain(estimator=None, *, order=None, cv=None, chain_method='predict', random_state=None, verbose=False, base_estimator='deprecated')[Quellcode]#
Ein Multi-Label-Modell, das binäre Klassifikatoren zu einer Kette anordnet.
Jedes Modell trifft eine Vorhersage in der durch die Kette angegebenen Reihenfolge und verwendet alle verfügbaren Merkmale, die dem Modell zur Verfügung gestellt werden, zuzüglich der Vorhersagen von Modellen, die sich früher in der Kette befinden.
Ein Beispiel für die Verwendung von
ClassifierChainund die Nutzung seines Ensembles finden Sie im Beispiel ClassifierChain auf einem Hefe-Datensatz.Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.19.
- Parameter:
- estimatorestimator
Der Basisschätzer, aus dem die Klassifikatorkette aufgebaut ist.
- orderarray-like von 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 durch Angabe einer Liste von ganzen Zahlen explizit 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 trifft, das zweite Modell Vorhersagen für Spalte 3 usw. trifft.
Wenn order
randomist, wird eine zufällige Reihenfolge verwendet.- cvint, Kreuzvalidierungsgenerator oder iterierbar, Standardwert=None
Legt fest, ob Kreuzvalidierungs-Vorhersagen oder tatsächliche Labels für die Ergebnisse früherer Schätzer in der Kette verwendet werden sollen. Mögliche Eingaben für cv sind
None, um tatsächliche Labels beim Anpassen zu verwenden,
Ganzzahl, um die Anzahl der Folds in einem (stratifizierten) KFold anzugeben,
Eine iterierbare Liste, die (Trainings-, Test-) Splits als Indizes-Arrays liefert.
- chain_method{‘predict’, ‘predict_proba’, ‘predict_log_proba’, ‘decision_function’} oder Liste von solchen Zeichenketten, Standard=’predict’
Vorhersagemethode, die von den Schätzern in der Kette für die „Vorhersage“-Merkmale früherer Schätzer in der Kette verwendet werden soll.
wenn
str, Name der Methode;wenn eine Liste von
str, gibt die Methodennamen in der Reihenfolge der Präferenz an. Die verwendete Methode entspricht der ersten Methode in der Liste, die vonbase_estimatorimplementiert wird.
Hinzugefügt in Version 1.5.
- random_stateint, RandomState-Instanz oder None, optional (Standard=None)
Wenn
order='random', bestimmt die Zufallszahlengenerierung für die Kettenreihenfolge. Außerdem steuert sie den Zufallssamen, der jedembase_estimatorbei jeder Ketteniteration übergeben wird. Daher wird sie nur verwendet, wennbase_estimatoreinenrandom_statebereitstellt. Ü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 1.9 entfernt. Verwenden Sie stattdessenestimator.
- Attribute:
- classes_liste
Eine Liste von Arrays der Länge
len(estimators_), die die Klassenlabels für jeden Schätzer in der Kette enthalten.- estimators_liste
Eine Liste von Klonen des Basisschätzers.
- order_liste
Die Reihenfolge der Labels in der Klassifikatorkette.
- chain_method_str
Vorhersagemethode, die von den Schätzern in der Kette für die Vorhersagemerkmale verwendet wird.
- n_features_in_int
Anzahl der Merkmale, die während fit gesehen wurden. Nur definiert, wenn der zugrunde liegende
base_estimatorein solches Attribut nach dem Anpassen bereitstellt.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
RegressorChainÄquivalent für Regression.
MultiOutputClassifierKlassifiziert jede Ausgabe unabhängig anstatt sie zu verketten.
Referenzen
Jesse Read, Bernhard Pfahringer, Geoff Holmes, Eibe Frank, „Classifier Chains for Multi-label Classification“, 2009.
Beispiele
>>> from sklearn.datasets import make_multilabel_classification >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.model_selection import train_test_split >>> from sklearn.multioutput import ClassifierChain >>> X, Y = make_multilabel_classification( ... n_samples=12, n_classes=3, random_state=0 ... ) >>> X_train, X_test, Y_train, Y_test = train_test_split( ... X, Y, random_state=0 ... ) >>> base_lr = LogisticRegression(solver='lbfgs', random_state=0) >>> chain = ClassifierChain(base_lr, order='random', random_state=0) >>> chain.fit(X_train, Y_train).predict(X_test) array([[1., 1., 0.], [1., 0., 0.], [0., 1., 0.]]) >>> chain.predict_proba(X_test) array([[0.8387, 0.9431, 0.4576], [0.8878, 0.3684, 0.2640], [0.0321, 0.9935, 0.0626]])
- decision_function(X)[Quellcode]#
Evaluieren Sie die decision_function der Modelle in der Kette.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Eingabedaten.
- Gibt zurück:
- Y_decisionarray-like von Form (n_samples, n_classes)
Gibt die Entscheidungsfunktion der Stichprobe für jedes Modell in der Kette zurück.
- fit(X, Y, **fit_params)[Quellcode]#
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
An die Methode
fitjedes Schritts übergebene Parameter.Nur verfügbar, wenn
enable_metadata_routing=Trueist. Siehe das Benutzerhandbuch.Hinzugefügt in Version 1.3.
- Gibt zurück:
- selfobject
Klasseninstanz.
- get_metadata_routing()[Quellcode]#
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)[Quellcode]#
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)[Quellcode]#
Vorhersage 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 von Form (n_samples, n_classes)
Die vorhergesagten Werte.
- predict_log_proba(X)[Quellcode]#
Vorhersage des Logarithmus von Wahrscheinlichkeitsschätzungen.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabedaten.
- Gibt zurück:
- Y_log_probarray-like von Form (n_samples, n_classes)
Der vorhergesagte Logarithmus der Wahrscheinlichkeiten.
- predict_proba(X)[Quellcode]#
Vorhersagen von Wahrscheinlichkeitsschätzungen.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Die Eingabedaten.
- Gibt zurück:
- Y_probarray-like von Form (n_samples, n_classes)
Die vorhergesagten Wahrscheinlichkeiten.
- score(X, y, sample_weight=None)[Quellcode]#
Gibt die Genauigkeit für die bereitgestellten Daten und Bezeichnungen zurück.
Bei der Multi-Label-Klassifizierung ist dies die Subset-Genauigkeit, eine strenge Metrik, da für jede Stichprobe verlangt wird, dass jede Label-Menge korrekt vorhergesagt wird.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Bezeichnungen für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
Mittlere Genauigkeit von
self.predict(X)in Bezug aufy.
- set_params(**params)[Quellcode]#
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$') ClassifierChain[Quellcode]#
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#
Multilabel-Klassifikation mit einem Klassifikator-Ketten