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_estimatorwurde inestimatorumbenannt.- 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
bootstrapfür weitere Details).Wenn None, dann werden
X.shape[0]Stichproben unabhängig vonsample_weightgezogen.Wenn int, dann werden
max_samplesSamples gezogen.Wenn float, dann werden
max_samples * X.shape[0]ungewichtete Stichproben odermax_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_featuresfür weitere Details).Wenn int, dann werden
max_featuresMerkmale 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_weightangepasst wird, wird dringend empfohlen, True zu wählen, da nur das Ziehen mit Zurücklegen die erwarteten Häufigkeitssemantiken vonsample_weightgewä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
fitals auchpredict.Nonebedeutet 1, es sei denn, es befindet sich in einemjoblib.parallel_backend-Kontext.-1bedeutet 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 inestimator_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
XMerkmalnamen 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 ArraysDie 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_scoreTrue 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, wennoob_scoreTrue ist.
Siehe auch
BaggingRegressorEin 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_functionMethode 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 mitk == 1, andernfallsk==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_weightnur erfüllt sind, wenn mit Zurücklegen gesampelt wirdbootstrap=Trueund ein float oder integermax_samplesverwendet wird (anstelle des Standardwertsmax_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=Truegesetzt ist, was durch Verwendung vonsklearn.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_probaMethode 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 diepredictMethode (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_probaoderprobaMethode 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_probaMethode 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 diepredictMethode (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 aufy.
- 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=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, anfitübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anfit.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_weightinfit.
- 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=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.