Kursinhalt
Ensemble-Lernen
Ensemble-Lernen
Bagging Regressor
Bagging Regressor erstellt ein Ensemble aus mehreren Basisregressionsmodellen und kombiniert deren Vorhersagen, um eine endgültige Vorhersage zu erzeugen. Im Bagging Regressor ist das Basismodell typischerweise ein Regressionsalgorithmus, wie z.B. Decision Tree Regressor. Die Hauptidee hinter dem Bagging Regressor ist es, Overfitting zu reduzieren und die Stabilität und Genauigkeit der Vorhersagen zu verbessern, indem die Vorhersagen mehrerer Basismodelle gemittelt werden.
Wie funktioniert der Bagging Regressor?
- Bootstrap Sampling: Der Bagging Regressor erzeugt mehrere Teilmengen der Trainingsdaten, indem er zufällig Proben mit Zurücklegen auswählt. Jede Teilmenge wird als Bootstrap-Stichprobe bezeichnet;
- Training des Basismodells: Ein separates Basisregressionsmodell (z.B. Decision Tree Regressor) wird auf jeder Bootstrap-Stichprobe trainiert. Dies erzeugt mehrere Basismodelle, jedes mit seiner eigenen Variation aufgrund der unterschiedlichen Datenuntergruppen, auf denen sie trainiert wurden;
- Aggregation der Vorhersagen: Der Bagging Regressor aggregiert die Vorhersagen aller Basismodelle, um Vorhersagen zu treffen. Im Falle von Regressionsaufgaben werden die Vorhersagen typischerweise über die Basismodelle gemittelt, um die endgültige Vorhersage zu bilden. Dieser Ensemble-Ansatz hilft, Overfitting zu reduzieren und die Gesamtleistung des Modells zu verbessern.
Hinweis
Auswahl von Proben mit Zurücklegen ist ein in Statistik und Wahrscheinlichkeit häufig verwendetes Konzept. Es bezieht sich auf eine Methode zur Stichprobenentnahme von Datenpunkten oder Elementen aus einem Datensatz oder einer Population, bei der nach jeder Auswahl das ausgewählte Element vor der nächsten Auswahl wieder in den Datensatz zurückgelegt wird. Mit anderen Worten, dasselbe Element kann im Stichprobenprozess mehr als einmal ausgewählt werden.
Beispiel für die Verwendung
Das Prinzip der Verwendung eines Bagging Regressors in Python ist dasselbe wie bei einem Bagging Classifier. Der einzige Unterschied besteht darin, dass der Bagging Regressor keine Implementierung für die .predict_proba()
-Methode hat - stattdessen wird die .predict()
-Methode verwendet, um Vorhersagen zu erstellen.
Hinweis
Wenn wir das Basismodell von
AdaBoostRegressor
nicht angeben, wird standardmäßig derDecisionTreeRegressor
verwendet.
import numpy as np import pandas as pd from sklearn.datasets import fetch_california_housing from sklearn.model_selection import train_test_split from sklearn.ensemble import BaggingRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import mean_squared_error # Load the California Housing dataset data = fetch_california_housing() X, y = data.data, data.target # Split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Create a base model (Decision Tree Regressor) base_model = DecisionTreeRegressor(random_state=42) # Create the Bagging Regressor bagging_model = BaggingRegressor(base_model, n_estimators=10) # Train the Bagging Regressor bagging_model.fit(X_train, y_train) # Make predictions on the test data predictions = bagging_model.predict(X_test) # Calculate mean squared error (MSE) mse = mean_squared_error(y_test, predictions) print(f'Mean Squared Error: {mse:.4f}')
Danke für Ihr Feedback!