2.5.4
Bagging
Σύνοψη
- Το Bagging εκπαιδεύει τον ίδιο βασικό εκπαιδευτή σε πολλά bootstrap δείγματα και συγκεντρώνει τις προβλέψεις μέσω μέσου όρου ή ψηφοφορίας.
- Το κύριο κέρδος είναι η μείωση της διακύμανσης, η οποία σταθεροποιεί εκπαιδευτές υψηλής διακύμανσης όπως τα βαθιά δέντρα απόφασης.
- Ο αριθμός εκτιμητών και η πολυπλοκότητα του βασικού μοντέλου ελέγχουν την ισορροπία μεταξύ ευρωστίας, ακρίβειας και υπολογιστικού κόστους.
Εισαγωγή #
Το Bagging λειτουργεί δημιουργώντας σκόπιμα πολλές ελαφρώς διαφορετικές εκδοχές του συνόλου εκπαίδευσης. Κάθε μοντέλο κάνει διαφορετικά σφάλματα· η συγκέντρωση ακυρώνει μέρος αυτού του θορύβου, ώστε ο τελικός προβλεπτής να είναι πιο σταθερός από οποιοδήποτε μεμονωμένο μοντέλο.
Αναλυτική Επεξήγηση #
1. Διαδικασία #
- Δημιουργήστε πολλαπλά bootstrap δείγματα από τα δεδομένα εκπαίδευσης
- Εκπαιδεύστε το ίδιο μοντέλο σε κάθε δείγμα
- Υπολογίστε τον μέσο όρο των προβλέψεων για παλινδρόμηση ή ψηφοφορία για ταξινόμηση
Το Bagging μειώνει κυρίως τη διακύμανση και κάνει το μοντέλο πιο σταθερό.
2. Παράδειγμα σε Python #
import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
base = DecisionTreeRegressor(max_depth=None, random_state=0)
bagging = BaggingRegressor(
estimator=base,
n_estimators=100,
max_samples=0.8,
max_features=0.8,
bootstrap=True,
random_state=0,
)
bagging.fit(X_train, y_train)
pred = bagging.predict(X_test)
print("RMSE:", mean_squared_error(y_test, pred, squared=False))
print("OOB score:", bagging.oob_score_)
3. Υπερπαράμετροι #
n_estimators: Αριθμός εκπαιδευτών. Περισσότερα δέντρα είναι πιο σταθερά αλλά πιο κοστοβόρα.max_samples,max_features: Ποσοστό δειγμάτων/χαρακτηριστικών ανά εκπαιδευτή.bootstrap: Αν γίνεται δειγματοληψία με αντικατάσταση·bootstrap_featuresκάνει το ίδιο για τα χαρακτηριστικά.oob_score: Εκτίμηση γενίκευσης από δείγματα εκτός σάκου (out-of-bag).
4. Πλεονεκτήματα και μειονεκτήματα #
| Πλεονεκτήματα | Μειονεκτήματα |
|---|---|
| Εύκολη υλοποίηση και παραλληλισμός | Πρέπει να διατηρούνται πολλά μοντέλα στη μνήμη |
| Μεγάλη μείωση διακύμανσης | Δεν μειώνει την πόλωση· οι αδύναμοι εκπαιδευτές πρέπει να είναι αρκετά καλοί |
| Η εκτίμηση OOB αποφεύγει επιπλέον διαχωρισμό επικύρωσης | Λιγότερο ερμηνεύσιμο από ένα μεμονωμένο δέντρο |
5. Σύνοψη #
- Το Bagging σταθεροποιεί τα μοντέλα μέσω αναδειγματοληψίας δεδομένων και υπολογισμού μέσου όρου προβλέψεων.
- Δέντρα απόφασης + Bagging = Random Forest, επομένως η σχέση αξίζει να θυμάστε.
- Λειτουργεί καλά σε μεγάλη κλίμακα όταν η εκπαίδευση μπορεί να παραλληλιστεί.