OneVsOneClassifier#
- class sklearn.multiclass.OneVsOneClassifier(estimator, *, n_jobs=None)[Quelle]#
One-vs-one Multiklassenstrategie.
Diese Strategie besteht darin, für jedes Klassenpaar einen Klassifikator anzupassen. Zum Vorhersagezeitpunkt wird die Klasse ausgewählt, die die meisten Stimmen erhalten hat. Da hierfür
n_classes * (n_classes - 1) / 2Klassifikatoren angepasst werden müssen, ist diese Methode aufgrund ihrer O(n_klassen^2)-Komplexität normalerweise langsamer als One-vs-Rest. Diese Methode kann jedoch vorteilhaft für Algorithmen wie Kernel-Algorithmen sein, die nicht gut aufn_samplesskalieren. Dies liegt daran, dass jedes einzelne Lernproblem nur eine kleine Teilmenge der Daten betrifft, während bei One-vs-Rest der vollständige Datensatzn_classes-mal verwendet wird.Mehr dazu im Benutzerhandbuch.
- Parameter:
- estimatorEstimator-Objekt
Ein Regressor oder Klassifikator, der fit implementiert. Wenn ein Klassifikator übergeben wird, wird decision_function bevorzugt verwendet und auf predict_proba zurückgefallen, falls diese 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 sollen: Die
n_classes * ( n_classes - 1) / 2OVO-Probleme werden parallel berechnet.Nonebedeutet 1, außer in einemjoblib.parallel_backendKontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.
- Attribute:
- estimators_Liste von
n_classes * (n_classes - 1) / 2-Estimators Estimators, die für Vorhersagen verwendet werden.
- classes_Numpy-Array der Form [n_classes]
Array mit Labels.
n_classes_intAnzahl der Klassen.
- pairwise_indices_Liste, Länge =
len(estimators_), oderNone Indizes der Stichproben, die beim Training der Estimators verwendet wurden.
None, wenn das `pairwise`-Tag desestimatorFalse ist.- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
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.
- estimators_Liste von
Siehe auch
OneVsRestClassifierOne-vs-all Multiklassen-Strategie.
OutputCodeClassifier(Fehlerkorrigierende) Output-Code-Multiklassenstrategie.
Beispiele
>>> from sklearn.datasets import load_iris >>> from sklearn.model_selection import train_test_split >>> from sklearn.multiclass import OneVsOneClassifier >>> from sklearn.svm import LinearSVC >>> X, y = load_iris(return_X_y=True) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, test_size=0.33, shuffle=True, random_state=0) >>> clf = OneVsOneClassifier( ... LinearSVC(random_state=0)).fit(X_train, y_train) >>> clf.predict(X_test[:10]) array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1])
- decision_function(X)[Quelle]#
Entscheidungsfunktion für den OneVsOneClassifier.
Die Entscheidungswerte für die Stichproben werden berechnet, indem die normalisierte Summe der paarweisen Klassifizierungskonfidenzniveaus zu den Stimmen addiert wird, um zwischen den Entscheidungswerten zu unterscheiden, wenn die Stimmen für alle Klassen gleich sind und zu einem Gleichstand führen.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Eingabedaten.
- Gibt zurück:
- Yarray-ähnlich der Form (n_samples, n_classes) oder (n_samples,)
Ergebnis des Aufrufs von
decision_functionauf dem abschließenden Estimator.Geändert in Version 0.19: Die Ausgabeform wurde zu
(n_samples,)geändert, um den Konventionen von scikit-learn für 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.
- yarray-like von Form (n_samples,)
Multiklassen-Ziele.
- **fit_paramsdict
Parameter, die an die
estimator.fitMethode 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
Der angepasste zugrundeliegende Estimator.
- 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 zugrundeliegender Estimators.
Sollte verwendet werden, wenn der Speicher für das Trainieren aller Daten ineffizient ist. Datenblöcke können in mehreren Iterationen übergeben werden, wobei der erste Aufruf ein Array aller Zielvariablen enthalten sollte.
- Parameter:
- X{array-ähnlich, sparse matrix) der Form (n_samples, n_features)
Daten.
- yarray-like von Form (n_samples,)
Multiklassen-Ziele.
- 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_fitjedes 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
Der teilweise angepasste zugrundeliegende Estimator.
- predict(X)[Quelle]#
Schätzt das beste Klassenlabel für jede Stichprobe in X.
Dies wird als
argmax(decision_function(X), axis=1)implementiert, was das Label der Klasse mit den meisten Stimmen von Estimators zurückgibt, die das Ergebnis einer Entscheidung für jedes mögliche Klassenpaar vorhersagen.- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Daten.
- Gibt zurück:
- yNumpy-Array der Form [n_samples]
Vorhergesagte Multi-Klassen-Zielwerte.
- 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 aufy.
- 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$') OneVsOneClassifier[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=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 anpartial_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 anpartial_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
klasseninpartial_fit.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OneVsOneClassifier[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=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#
Übersicht über Multiklassen-Training Meta-Estimator