BaggingClassifier#

class sklearn.ensemble.BaggingClassifier(estimator=None, n_estimators=10, *, max_samples=None, max_features=1.0, bootstrap=True, bootstrap_features=False, oob_score=False, warm_start=False, n_jobs=None, random_state=None, verbose=0)[Quelle]#

Ein Bagging-Klassifikator.

Ein Bagging-Klassifikator ist ein Ensemble-Meta-Estimator, der Basis-Klassifikatoren jeweils auf zufälligen Teilmengen des ursprünglichen Datensatzes anpasst und dann seine individuellen Vorhersagen (entweder durch Abstimmung oder Mittelung) aggregiert, um eine endgültige Vorhersage zu bilden. Ein solcher Meta-Estimator kann typischerweise als Mittel zur Reduzierung der Varianz eines Black-Box-Schätzers (z. B. eines Entscheidungsbaums) verwendet werden, indem dem Konstruktionsverfahren Zufälligkeit hinzugefügt und dann ein Ensemble daraus gebildet wird.

Dieser Algorithmus umfasst mehrere Arbeiten aus der Literatur. Wenn zufällige Teilmengen des Datensatzes als zufällige Teilmengen der Stichproben gezogen werden, ist dieser Algorithmus als Pasting bekannt [1]. Werden Stichproben mit Zurücklegen gezogen, ist die Methode als Bagging bekannt [2]. Wenn zufällige Teilmengen des Datensatzes als zufällige Teilmengen der Merkmale gezogen werden, ist die Methode als Random Subspaces bekannt [3]. Schließlich, wenn Basis-Estimators auf Teilmengen sowohl von Stichproben als auch von Merkmalen aufgebaut werden, ist die Methode als Random Patches bekannt [4].

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.15.

Parameter:
estimatorobject, Standard=None

Der Basis-Estimator, der auf zufälligen Teilmengen des Datensatzes angepasst werden soll. Wenn None, dann ist der Basis-Estimator ein DecisionTreeClassifier.

Hinzugefügt in Version 1.2: base_estimator wurde in estimator umbenannt.

n_estimatorsint, Standardwert=10

Die Anzahl der Basisschätzer im Ensemble.

max_samplesint oder float, Standard=None

Die Anzahl der Stichproben, die aus X gezogen werden, um jeden Basis-Estimator zu trainieren (standardmäßig mit Zurücklegen, siehe bootstrap für weitere Details).

  • Wenn None, dann werden X.shape[0] Stichproben unabhängig von sample_weight gezogen.

  • Wenn int, dann werden max_samples Samples gezogen.

  • Wenn float, dann werden max_samples * X.shape[0] ungewichtete Stichproben oder max_samples * sample_weight.sum() gewichtete Stichproben gezogen.

max_featuresint oder float, Standardwert=1.0

Die Anzahl der Merkmale, die aus X gezogen werden, um jeden Basis-Estimator zu trainieren (standardmäßig ohne Zurücklegen, siehe bootstrap_features für weitere Details).

  • Wenn int, dann werden max_features Merkmale gezogen.

  • Wenn float, dann werden max(1, int(max_features * n_features_in_)) Merkmale gezogen.

bootstrapbool, default=True

Ob Stichproben mit Zurücklegen gezogen werden. Wenn False, wird ohne Zurücklegen gezogen. Wenn mit sample_weight angepasst wird, wird dringend empfohlen, True zu wählen, da nur das Ziehen mit Zurücklegen die erwarteten Häufigkeitssemantiken von sample_weight gewährleistet.

bootstrap_featuresbool, Standardwert=False

Ob Merkmale mit Zurücklegen gezogen werden.

oob_scorebool, Standardwert=False

Ob Out-of-Bag-Stichproben verwendet werden sollen, um den Generalisierungsfehler abzuschätzen. Nur verfügbar, wenn bootstrap=True.

warm_startbool, Standard=False

Wenn auf True gesetzt, wird die Lösung des vorherigen Aufrufs von fit wiederverwendet und dem Ensemble weitere Estimators hinzugefügt, andernfalls wird einfach ein komplett neues Ensemble angepasst. Siehe Glossar.

Hinzugefügt in Version 0.17: warm_start Konstruktorparameter.

n_jobsint, default=None

Die Anzahl der parallel auszuführenden Jobs für sowohl fit als auch predict. None bedeutet 1, es sei denn, es befindet sich in einem joblib.parallel_backend-Kontext. -1 bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.

random_stateint, RandomState-Instanz oder None, default=None

Steuert das zufällige Resampling des ursprünglichen Datensatzes (stichprobenweise und merkmalweise). Wenn der Basis-Estimator ein random_state-Attribut akzeptiert, wird für jede Instanz im Ensemble ein anderer Seed generiert. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

verboseint, default=0

Steuert die Ausführlichkeit beim Anpassen und Vorhersagen.

Attribute:
estimator_Schätzer

Der Basis-Schätzer, aus dem das Ensemble aufgebaut wird.

Hinzugefügt in Version 1.2: base_estimator_ wurde in estimator_ umbenannt.

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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

estimators_Liste von Estimator

Die Sammlung der angepassten Basis-Estimators.

estimators_samples_Liste von Arrays

Die Teilmenge der gezogenen Samples für jeden Basis-Estimator.

estimators_features_Liste von Arrays

Die Teilmenge der für jeden Basisschätzer gezogenen Merkmale.

classes_ndarray der Form (n_classes,)

Die Klassenbezeichnungen.

n_classes_int oder Liste

Die Anzahl der Klassen.

oob_score_float

Score des Trainingsdatensatzes, der mit einer Out-of-Bag-Schätzung erzielt wurde. Dieses Attribut existiert nur, wenn oob_score True ist.

oob_decision_function_ndarray der Form (n_samples, n_classes)

Entscheidungsfunktion, berechnet mit Out-of-Bag-Schätzung auf dem Trainingsset. Wenn n_estimators klein ist, kann es vorkommen, dass ein Datenpunkt nie bei der Bootstrap-Auswahl ausgelassen wurde. In diesem Fall kann oob_decision_function_ NaN enthalten. Dieses Attribut existiert nur, wenn oob_score True ist.

Siehe auch

BaggingRegressor

Ein Bagging-Regressor.

Referenzen

[1]

L. Breiman, “Pasting small votes for classification in large databases and on-line”, Machine Learning, 36(1), 85-103, 1999.

[2]

L. Breiman, “Bagging predictors”, Machine Learning, 24(2), 123-140, 1996.

[3]

T. Ho, “The random subspace method for constructing decision forests”, Pattern Analysis and Machine Intelligence, 20(8), 832-844, 1998.

[4]

G. Louppe und P. Geurts, “Ensembles on Random Patches”, Machine Learning and Knowledge Discovery in Databases, 346-361, 2012.

Beispiele

>>> from sklearn.svm import SVC
>>> from sklearn.ensemble import BaggingClassifier
>>> 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 = BaggingClassifier(estimator=SVC(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
decision_function(X, **params)[Quelle]#

Der Durchschnitt der Entscheidungsfunktionen der Basis-Klassifikatoren.

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

Die Trainings-Eingabestichproben. Sparse Matrizen werden nur akzeptiert, wenn sie vom Basis-Estimator unterstützt werden.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die decision_function Methode der Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.7: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
scorendarray der Form (n_samples, k)

Die Entscheidungsfunktion der Eingabestichproben. Die Spalten entsprechen den Klassen in sortierter Reihenfolge, wie sie im Attribut classes_ erscheinen. Regression und binäre Klassifizierung sind Sonderfälle mit k == 1, andernfalls k==n_classes.

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

Erstellt ein Bagging-Ensemble von Estimators aus dem Trainingsdatensatz (X, y).

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

Die Trainings-Eingabestichproben. Sparse Matrizen werden nur akzeptiert, wenn sie vom Basis-Estimator unterstützt werden.

yarray-like von Form (n_samples,)

Die Zielwerte (Klassenbezeichnungen bei Klassifizierung, reelle Zahlen bei Regression).

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

Stichprobengewichte. Wenn None, dann sind die Stichproben gleich gewichtet. Wird als Wahrscheinlichkeiten verwendet, um den Trainingsdatensatz zu sampeln. Beachten Sie, dass die erwarteten Häufigkeitssemantiken für den Parameter sample_weight nur erfüllt sind, wenn mit Zurücklegen gesampelt wird bootstrap=True und ein float oder integer max_samples verwendet wird (anstelle des Standardwerts max_samples=None).

**fit_paramsdict

Parameter, die an die zugrunde liegenden Estimator übergeben werden.

Hinzugefügt in Version 1.5: Nur verfügbar, wenn enable_metadata_routing=True gesetzt ist, was durch Verwendung von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Weitere Details finden Sie in der Benutzerhandbuch für Metadaten-Routing.

Gibt zurück:
selfobject

Angepasster Schätzer.

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

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

Sagt die Klasse für X voraus.

Die vorhergesagte Klasse einer Eingabestichprobe wird als die Klasse mit der höchsten mittleren vorhergesagten Wahrscheinlichkeit berechnet. Wenn Basis-Estimators keine predict_proba Methode implementieren, greift es auf Abstimmung zurück.

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

Die Trainings-Eingabestichproben. Sparse Matrizen werden nur akzeptiert, wenn sie vom Basis-Estimator unterstützt werden.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die predict_proba (falls verfügbar) oder die predict Methode (andernfalls) der Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.7: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
yndarray der Form (n_samples,)

Die vorhergesagten Klassen.

predict_log_proba(X, **params)[Quelle]#

Sagt die logarithmierte Klassenwahrscheinlichkeit für X voraus.

Die vorhergesagten Log-Wahrscheinlichkeiten der Klasse einer Eingabestichprobe werden als der Logarithmus der mittleren vorhergesagten Klassennwahrscheinlichkeiten der Basis-Estimators im Ensemble berechnet.

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

Die Trainings-Eingabestichproben. Sparse Matrizen werden nur akzeptiert, wenn sie vom Basis-Estimator unterstützt werden.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die predict_log_proba, predict_proba oder proba Methode der Unter-Estimators weitergeleitet werden. Das Routing wird in der genannten Reihenfolge versucht, abhängig davon, ob diese Methode auf dem Unter-Estimator verfügbar ist.

Hinzugefügt in Version 1.7: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
pndarray der Form (n_samples, n_classes)

Die Klassen-Log-Wahrscheinlichkeiten der Eingabestichproben. Die Reihenfolge der Klassen entspricht der in dem Attribut classes_.

predict_proba(X, **params)[Quelle]#

Sagt die Klassenwahrscheinlichkeiten für X voraus.

Die vorhergesagten Klassennwahrscheinlichkeiten einer Eingabestichprobe werden als Mittel der vorhergesagten Klassennwahrscheinlichkeiten der Basis-Estimators im Ensemble berechnet. Wenn Basis-Estimators keine predict_proba Methode implementieren, greift es auf Abstimmung zurück und die vorhergesagten Klassennwahrscheinlichkeiten einer Eingabestichprobe stellen den Anteil der Estimators dar, die jede Klasse vorhersagen.

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

Die Trainings-Eingabestichproben. Sparse Matrizen werden nur akzeptiert, wenn sie vom Basis-Estimator unterstützt werden.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die predict_proba (falls verfügbar) oder die predict Methode (andernfalls) der Unter-Estimators weitergeleitet werden.

Hinzugefügt in Version 1.7: Nur verfügbar, wenn sklearn.set_config(enable_metadata_routing=True) gesetzt ist. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
pndarray der Form (n_samples, n_classes)

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

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