OneVsRestClassifier#

class sklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[Quelle]#

One-vs-the-rest (OvR) Multiklassenstrategie.

Auch als One-vs-All bekannt, besteht diese Strategie darin, einen Klassifikator pro Klasse anzupassen. Für jeden Klassifikator wird die Klasse gegen alle anderen Klassen angepasst. Neben seiner rechnerischen Effizienz (nur n_classes Klassifikatoren werden benötigt) ist ein Vorteil dieses Ansatzes seine Interpretierbarkeit. Da jede Klasse nur durch einen Klassifikator repräsentiert wird, ist es möglich, Kenntnisse über die Klasse zu gewinnen, indem ihr entsprechender Klassifikator untersucht wird. Dies ist die am häufigsten verwendete Strategie für die Mehrklassenklassifizierung und eine faire Standardwahl.

OneVsRestClassifier kann auch für die Mehrfachlabel-Klassifizierung verwendet werden. Um diese Funktion zu nutzen, stellen Sie bei der Übergabe von .fit eine Indikatormatrix für das Ziel y bereit. Mit anderen Worten, die Ziel-Labels sollten als binäre (0/1) Matrix im 2D-Format vorliegen, wobei [i, j] == 1 die Anwesenheit von Label j in Stichprobe i anzeigt. Dieser Estimator verwendet die binäre Relevanzmethode zur Durchführung der Mehrfachlabel-Klassifizierung, was das unabhängige Training eines binären Klassifikators für jedes Label beinhaltet.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorEstimator-Objekt

Ein Regressor oder ein Klassifikator, der fit implementiert. Wenn ein Klassifikator übergeben wird, wird decision_function bevorzugt verwendet und auf predict_proba zurückgefallen, falls es nicht verfügbar ist. Wenn ein Regressor übergeben wird, wird predict verwendet.

n_jobsint, default=None

Die Anzahl der Jobs, die für die Berechnung verwendet werden: die n_classes One-vs-rest-Probleme werden parallel berechnet.

None bedeutet 1, außer in einem joblib.parallel_backend Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

Geändert in Version 0.20: n_jobs Standard von 1 auf None geändert

verboseint, default=0

Die Ausführlichkeitsstufe. Wenn sie ungleich Null ist, werden Fortschrittsnachrichten ausgegeben. Unter 50 werden die Ausgaben an stderr gesendet. Andernfalls werden die Ausgaben an stdout gesendet. Die Häufigkeit der Meldungen steigt mit der Ausführlichkeitsstufe, wobei bei 10 alle Iterationen gemeldet werden. Weitere Details finden Sie unter joblib.Parallel.

Hinzugefügt in Version 1.1.

Attribute:
estimators_Liste von n_classes Estimators

Estimators, die für Vorhersagen verwendet werden.

classes_Array, Form = [n_classes]

Klassenbezeichnungen.

n_classes_int

Anzahl der Klassen.

label_binarizer_LabelBinarizer-Objekt

Objekt, das verwendet wird, um Mehrklassen-Labels in binäre Labels und umgekehrt zu transformieren.

multilabel_boolean

Ob dies ein Mehrfachlabel-Klassifikator ist.

n_features_in_int

Anzahl der während fit gesehenen Merkmale. Nur definiert, wenn der zugrunde liegende Schätzer ein solches Attribut nach dem Training bereitstellt.

Hinzugefügt in Version 0.24.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen von Features, die während fit gesehen wurden. Nur definiert, wenn der zugrunde liegende Estimator ein solches Attribut nach dem Anpassen exponiert.

Hinzugefügt in Version 1.0.

Siehe auch

OneVsOneClassifier

One-vs-one Multiklassenstrategie.

OutputCodeClassifier

(Fehlerkorrigierende) Output-Code-Multiklassenstrategie.

sklearn.multioutput.MultiOutputClassifier

Alternative Möglichkeit, einen Estimator für die Mehrfachlabel-Klassifizierung zu erweitern.

sklearn.preprocessing.MultiLabelBinarizer

Iterierbare von Iterierbaren in eine binäre Indikatormatrix transformieren.

Beispiele

>>> import numpy as np
>>> from sklearn.multiclass import OneVsRestClassifier
>>> from sklearn.svm import SVC
>>> X = np.array([
...     [10, 10],
...     [8, 10],
...     [-5, 5.5],
...     [-5.4, 5.5],
...     [-20, -20],
...     [-15, -20]
... ])
>>> y = np.array([0, 0, 1, 1, 2, 2])
>>> clf = OneVsRestClassifier(SVC()).fit(X, y)
>>> clf.predict([[-19, -20], [9, 9], [-5, 5]])
array([2, 0, 1])
decision_function(X)[Quelle]#

Entscheidungsfunktion für den OneVsRestClassifier.

Gibt den Abstand jeder Stichprobe vom Entscheidungsgrenzwert für jede Klasse zurück. Dies kann nur mit Estimators verwendet werden, die die Methode decision_function implementieren.

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

Eingabedaten.

Gibt zurück:
Tarray-ähnlich der Form (n_samples, n_classes) oder (n_samples,) für binäre Klassifizierung.

Ergebnis des Aufrufs von decision_function auf dem abschließenden Estimator.

Geändert in Version 0.19: Form der Ausgabe geändert auf (n_samples,), um den Konventionen von scikit-learn für die binäre Klassifizierung zu entsprechen.

fit(X, y, **fit_params)[Quelle]#

Passen Sie zugrunde liegende Estimators an.

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

Daten.

y{array-ähnlich, sparse matrix} der Form (n_samples,) oder (n_samples, n_classes)

Mehrklassen-Ziele. Eine Indikatormatrix aktiviert die Mehrfachlabel-Klassifizierung.

**fit_paramsdict

Parameter, die an die estimator.fit Methode jedes Unter-Estimators übergeben werden.

Hinzugefügt in Version 1.4: Nur verfügbar, wenn enable_metadata_routing=True. Siehe Benutzerhandbuch zur Metadaten-Weiterleitung für weitere Details.

Gibt zurück:
selfobject

Instanz des angepassten Estimators.

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.4.

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, **partial_fit_params)[Quelle]#

Teilweises Anpassen der zugrundeliegenden Estimators.

Sollte verwendet werden, wenn der Speicher für das Training aller Daten nicht ausreicht. Daten können in mehreren Iterationen in Blöcken übergeben werden.

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

Daten.

y{array-ähnlich, sparse matrix} der Form (n_samples,) oder (n_samples, n_classes)

Mehrklassen-Ziele. Eine Indikatormatrix aktiviert die Mehrfachlabel-Klassifizierung.

classesArray, Form (n_classes, )

Klassen über alle Aufrufe von partial_fit. Kann über np.unique(y_all) erhalten werden, wobei y_all der Zielvektor des gesamten Datensatzes ist. Dieses Argument ist nur beim ersten Aufruf von partial_fit erforderlich und kann bei nachfolgenden Aufrufen weggelassen werden.

**partial_fit_paramsdict

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

Hinzugefügt in Version 1.4: Nur verfügbar, wenn enable_metadata_routing=True. Siehe Benutzerhandbuch zur Metadaten-Weiterleitung für weitere Details.

Gibt zurück:
selfobject

Instanz eines teilweise angepassten Estimators.

predict(X)[Quelle]#

Vorhersage von Mehrklassen-Zielen mit zugrundeliegenden Estimators.

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

Daten.

Gibt zurück:
y{array-ähnlich, sparse matrix} der Form (n_samples,) oder (n_samples, n_classes)

Vorhergesagte Multi-Klassen-Zielwerte.

predict_proba(X)[Quelle]#

Wahrscheinlichkeitsschätzungen.

Die zurückgegebenen Schätzungen für alle Klassen sind nach dem Label der Klassen geordnet.

Beachten Sie, dass im Mehrfachlabel-Fall jede Stichprobe eine beliebige Anzahl von Labels haben kann. Dies gibt die marginale Wahrscheinlichkeit zurück, dass die gegebene Stichprobe das betreffende Label hat. Es ist beispielsweise völlig konsistent, dass zwei Labels beide eine Wahrscheinlichkeit von 90 % haben, auf eine gegebene Stichprobe zuzutreffen.

Im Fall der Einzel-Label-Mehrklassenklassifizierung summieren sich die Zeilen der zurückgegebenen Matrix zu 1.

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

Eingabedaten.

Gibt zurück:
TArray-ähnlich der Form (n_samples, n_classes)

Gibt die Wahrscheinlichkeit der Stichprobe für jede Klasse im Modell zurück, wobei die Klassen in der Reihenfolge von self.classes_ geordnet sind.

score(X, y, sample_weight=None)[Quelle]#

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 auf y.

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$') OneVsRestClassifier[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.

Gibt zurück:
selfobject

Das aktualisierte Objekt.

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OneVsRestClassifier[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.