BaggingRegressor#

class sklearn.ensemble.BaggingRegressor(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-Regressor.

Ein Bagging-Regressor ist ein Ensemble-Meta-Schätzer, der Basisschätzer jeweils auf zufälligen Teilmengen des ursprünglichen Datensatzes anpasst und dann ihre individuellen Vorhersagen (entweder durch Abstimmung oder durch Mittelwertbildung) aggregiert, um eine endgültige Vorhersage zu bilden. Ein solcher Meta-Schätzer kann typischerweise als eine Methode zur Reduzierung der Varianz eines Black-Box-Schätzers (z.B. eines Entscheidungsbaums) verwendet werden, indem Zufälligkeit in seinen Konstruktionsprozess eingeführt 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, dann ist dieser Algorithmus als Pasting [1] bekannt. Wenn Stichproben mit Zurücklegen gezogen werden, dann ist die Methode als Bagging [2] bekannt. Wenn zufällige Teilmengen des Datensatzes als zufällige Teilmengen der Merkmale gezogen werden, dann ist die Methode als Random Subspaces [3] bekannt. Schließlich, wenn Basisschätzer auf Teilmengen sowohl von Stichproben als auch von Merkmalen aufgebaut werden, dann ist die Methode als Random Patches [4] bekannt.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 0.15.

Parameter:
estimatorobject, Standard=None

Der Basisschätzer, der auf zufälligen Teilmengen des Datensatzes angepasst wird. Wenn None, dann ist der Basisschätzer ein DecisionTreeRegressor.

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

n_estimatorsint, default=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 Basisschätzer 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 Basisschätzer 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 sicherstellt.

bootstrap_featuresbool, default=False

Ob Merkmale mit Zurücklegen gezogen werden.

oob_scorebool, default=False

Ob Out-of-Bag-Stichproben zur Schätzung des Generalisierungsfehlers verwendet werden. 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 Schätzer hinzugefügt, andernfalls wird nur ein ganzes neues Ensemble angepasst. Siehe Glossar.

n_jobsint, default=None

Die Anzahl der Jobs, die parallel für fit und predict ausgeführt werden. 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 die zufällige Neuauswahl des ursprünglichen Datensatzes (stichprobenweise und merkmalweise). Wenn der Basisschätzer ein Attribut random_state 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 Unter-Estimators.

estimators_samples_Liste von Arrays

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

estimators_features_list of arrays

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

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_prediction_ndarray of shape (n_samples,)

Vorhersage, die mit Out-of-Bag-Schätzung auf dem Trainingsdatensatz berechnet wurde. Wenn n_estimators klein ist, kann es sein, dass ein Datenpunkt nie ausgelassen wurde. In diesem Fall kann oob_prediction_ NaN enthalten. Dieses Attribut existiert nur, wenn oob_score True ist.

Siehe auch

BaggingClassifier

Ein Bagging-Klassifikator.

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 SVR
>>> from sklearn.ensemble import BaggingRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_samples=100, n_features=4,
...                        n_informative=2, n_targets=1,
...                        random_state=0, shuffle=False)
>>> regr = BaggingRegressor(estimator=SVR(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> regr.predict([[0, 0, 0, 0]])
array([-2.8720])
fit(X, y, sample_weight=None, **fit_params)[Quelle]#

Erstellt ein Bagging-Ensemble von Schätzern 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 Basisschätzer 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 zum Ziehen des Trainingsdatensatzes verwendet. Beachten Sie, dass die erwarteten Häufigkeitssemantiken für den Parameter sample_weight nur erfüllt werden, wenn mit Zurücklegen gezogen wird (bootstrap=True) und ein float- oder ganzzahliger 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]#

Prognostiziert das Regressionsziel für X.

Die vorhergesagte Regressionszielgröße einer Eingabestichprobe wird als Mittelwert der vorhergesagten Regressionszielgrößen der Schätzer 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 Basisschätzer unterstützt werden.

**paramsdict

Parameter, die über die Metadaten-Routing-API an die predict-Methode der Unter-Schätzer 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 Werte.

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

Gibt den Bestimmtheitskoeffizienten auf Testdaten zurück.

Der Bestimmtheitskoeffizient, \(R^2\), ist definiert als \((1 - \frac{u}{v})\), wobei \(u\) die Summe der quadrierten Residuen ((y_true - y_pred)** 2).sum() und \(v\) die totale Summe der Quadrate ((y_true - y_true.mean()) ** 2).sum() ist. Der bestmögliche Score ist 1.0 und kann negativ sein (da das Modell beliebig schlechter sein kann). Ein konstantes Modell, das immer den Erwartungswert von y vorhersagt, unabhängig von den Eingabemerkmalen, würde einen \(R^2\)-Score von 0.0 erhalten.

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

Teststichproben. Für einige Schätzer kann dies eine vorab berechnete Kernelmatrix oder eine Liste von generischen Objekten sein, stattdessen mit der Form (n_samples, n_samples_fitted), wobei n_samples_fitted die Anzahl der für die Anpassung des Schätzers verwendeten Stichproben ist.

yarray-like der Form (n_samples,) oder (n_samples, n_outputs)

Wahre Werte für X.

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

Stichprobengewichte.

Gibt zurück:
scorefloat

\(R^2\) von self.predict(X) bezogen auf y.

Anmerkungen

Der \(R^2\)-Score, der beim Aufruf von score für einen Regressor verwendet wird, nutzt ab Version 0.23 multioutput='uniform_average', um konsistent mit dem Standardwert von r2_score zu sein. Dies beeinflusst die score-Methode aller Multi-Output-Regressoren (außer für MultiOutputRegressor).

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