OutputCodeClassifier#

class sklearn.multiclass.OutputCodeClassifier(estimator, *, code_size=1.5, random_state=None, n_jobs=None)[Quelle]#

(Fehlerkorrigierende) Output-Code-Multiklassenstrategie.

Output-Code-basierte Strategien bestehen darin, jede Klasse mit einem binären Code (ein Array aus 0en und 1en) darzustellen. Während der Anpassung wird ein binärer Klassifikator für jedes Bit im Codebuch angepasst. Während der Vorhersage werden die Klassifikatoren verwendet, um neue Punkte in den Klassenraum zu projizieren, und die Klasse, die den Punkten am nächsten liegt, wird ausgewählt. Der Hauptvorteil dieser Strategien besteht darin, dass die Anzahl der verwendeten Klassifikatoren vom Benutzer gesteuert werden kann, entweder zur Komprimierung des Modells (0 < code_size < 1) oder zur Erhöhung der Robustheit des Modells gegenüber Fehlern (code_size > 1). Weitere Details finden Sie in der Dokumentation.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorEstimator-Objekt

Ein Estimator-Objekt, das fit und entweder decision_function oder predict_proba implementiert.

code_sizefloat, default=1.5

Prozentsatz der Anzahl der Klassen, der zur Erstellung des Codebuchs verwendet wird. Eine Zahl zwischen 0 und 1 erfordert weniger Klassifikatoren als One-vs-the-Rest. Eine Zahl größer als 1 erfordert mehr Klassifikatoren als One-vs-the-Rest.

random_stateint, RandomState instance, default=None

Der Generator, der zum Initialisieren des Codebuchs verwendet wird. Übergeben Sie eine Ganzzahl für reproduzierbare Ausgaben über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

n_jobsint, default=None

Die Anzahl der Jobs, die für die Berechnung verwendet werden: Die Multiklassenprobleme 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.

Attribute:
estimators_Liste von int(n_classes * code_size) Estimators

Estimators, die für Vorhersagen verwendet werden.

classes_ndarray der Form (n_classes,)

Array, das die Labels enthält.

code_book_ndarray der Form (n_classes, len(estimators_))

Binäres Array, das den Code jeder Klasse enthält.

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

OneVsRestClassifier

One-vs-all Multiklassenstrategie.

OneVsOneClassifier

One-vs-one Multiklassenstrategie.

Referenzen

[1]

„Solving multiclass learning problems via error-correcting output codes“, Dietterich T., Bakiri G., Journal of Artificial Intelligence Research 2, 1995.

[2]

„The error coding method and PICTs“, James G., Hastie T., Journal of Computational and Graphical statistics 7, 1998.

[3]

„The Elements of Statistical Learning“, Hastie T., Tibshirani R., Friedman J., Seite 606 (zweite Auflage) 2008.

Beispiele

>>> from sklearn.multiclass import OutputCodeClassifier
>>> from sklearn.ensemble import RandomForestClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=100, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = OutputCodeClassifier(
...     estimator=RandomForestClassifier(random_state=0),
...     random_state=0).fit(X, y)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
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,)

Multi-Klassen-Zielwerte.

**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

Gibt eine angepasste Instanz von self 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.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.

predict(X)[Quelle]#

Vorhersagen von Multi-Klassen-Zielwerten mit zugrunde liegenden Estimators.

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

Daten.

Gibt zurück:
yndarray 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 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_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OutputCodeClassifier[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.