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_estimatorwurde inestimatorumbenannt.- 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
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 Basisschätzer 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_weightsicherstellt.- 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
fitundpredictausgeführt werden.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 die zufällige Neuauswahl des ursprünglichen Datensatzes (stichprobenweise und merkmalweise). Wenn der Basisschätzer ein Attribut
random_stateakzeptiert, 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 Unter-Estimators.
estimators_samples_Liste von ArraysDie 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_scoreTrue 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, wennoob_scoreTrue ist.
Siehe auch
BaggingClassifierEin 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_weightnur erfüllt werden, wenn mit Zurücklegen gezogen wird (bootstrap=True) und ein float- oder ganzzahligermax_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]#
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 vonyvorhersagt, 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), wobein_samples_fitteddie 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 aufy.
Anmerkungen
Der \(R^2\)-Score, der beim Aufruf von
scorefür einen Regressor verwendet wird, nutzt ab Version 0.23multioutput='uniform_average', um konsistent mit dem Standardwert vonr2_scorezu sein. Dies beeinflusst diescore-Methode aller Multi-Output-Regressoren (außer fürMultiOutputRegressor).
- 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=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$') 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=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#
Einzelner Estimator versus Bagging: Bias-Varianz-Zerlegung