Kursinhalt
Ensemble-Lernen
Ensemble-Lernen
Kurszusammenfassung
Lassen Sie uns die wichtigsten Informationen zusammenfassen und hervorheben, die im Kurs behandelt wurden.
Ensemble-Lernen im maschinellen Lernen ist eine Technik, die die Vorhersagen mehrerer einzelner Modelle (Lerner) kombiniert, um eine robustere und genauere Vorhersage oder Klassifizierung zu erzeugen. Es nutzt das Prinzip, dass durch die Aggregation der Meinungen mehrerer Modelle oft bessere Ergebnisse erzielt werden können als durch die Verlass auf ein einzelnes Modell.
Es gibt drei häufig verwendete Techniken zur Erstellung von Ensembles: Bagging, Boosting und Stacking.
Bagging-Ensembles
-
Bagging (Bootstrap Aggregating) ist eine Ensemble-Lerntechnik, bei der mehrere einzelne Modelle, oft vom gleichen Typ, unabhängig voneinander auf zufälligen Teilmengen der Trainingsdaten trainiert werden, wobei wiederholte Stichproben (mit Zurücklegen) erlaubt sind. Jedes Modell erzeugt seine Vorhersage, und die endgültige Vorhersage wird typischerweise durch Mittelwertbildung (für Regression) oder Abstimmung (für Klassifikation) der einzelnen Modellausgaben erhalten;
-
Das Training von Bagging-Ensembles in Parallel mit dem
n_jobs
-Parameter ermöglicht das gleichzeitige Training einzelner Modelle auf verschiedenen Teilmengen der Daten, was den Ensemble-Trainingsprozess erheblich beschleunigt, indem mehrere CPU-Kerne genutzt werden; -
Die Hauptklassen, die zur Implementierung von Bagging-Modellen in Python verwendet werden, umfassen:
BaggingClassifier
: Diese Klasse wird zum Erstellen von Bagging-Ensembles für Klassifikationsaufgaben verwendet;BaggingRegressor
: Ähnlich wie BaggingClassifier wird diese Klasse speziell zum Erstellen von Bagging-Ensembles für Regressionsaufgaben verwendet;RandomForestClassifier
undRandomForestRegressor
: Diese Klassen implementieren Ensemble-Lernen mit einer speziellen Art von Bagging, die als Random Forests bezeichnet wird;ExtraTreesClassifier
undExtraTreesRegressor
: Diese Klassen sind ähnlich wie Random Forests, verwenden jedoch eine andere Technik namens extrem zufällige Bäume, die zusätzlich zur Bagging den Merkmal-Auswahlprozess weiter randomisiert.
Boosting-Ensembles
- Boosting-Ensembles sind maschinelle Lerntechniken, die mehrere schwache Lerner sequentiell trainieren, wobei jeder darauf abzielt, die Fehler seines Vorgängers zu korrigieren;
- AdaBoost (Adaptive Boosting) ist ein Ensemble-Lernalgorithmus, der Gewichte auf Trainingsinstanzen zuweist und die falsch klassifizierten in jeder Iteration betont, sodass nachfolgende schwache Klassifikatoren sich auf die herausfordernden Beispiele konzentrieren können. In Python können Sie AdaBoost für Klassifikations- und Regressionsaufgaben mit den Klassen
AdaBoostClassifier
undAdaBoostRegresso
aus dersklearn
-Bibliothek implementieren; - Gradient Boosting ist eine maschinelle Lern-Ensemble-Methode, die ein starkes Vorhersagemodell aufbaut, indem sequentiell Entscheidungsbäume trainiert werden, von denen jeder darauf abzielt, die Fehler der vorherigen Bäume zu korrigieren. In Python können Sie Gradient Boosting mit der
sklearn
-Bibliothek implementieren. Sie können dieGradientBoostingClassifier
-Klasse für Klassifikationsaufgaben und dieGradientBoostingRegressor
-Klasse für Regressionsaufgaben verwenden; - XGBoost, kurz für Extreme Gradient Boosting, ist eine leistungsstarke und effiziente Gradient-Boosting-Maschinenlern-Bibliothek, die für ihre hohe Leistung und ihre Fähigkeit bekannt ist, eine Vielzahl von maschinellen Lernaufgaben zu bewältigen. XGBoost verwendet eine spezielle optimierte Datenstruktur namens DMatrix, um die Leistung des Modells zu verbessern. Um XGBoost in Python zu implementieren, können Sie die Klassen
XGBoostClassifier
undXGBoostRegressor
aus derxgboost
-Bibliothek verwenden.
Stacking-Ensembles
- Stacking-Ensemble ist eine Ensemble-Maschinenlern-Technik, die die Vorhersagen mehrerer Basismodelle kombiniert, indem ein Meta-Modell (oft als Meta-Lerner bezeichnet) auf ihren Ausgaben trainiert wird, sodass es lernt, wie man ihre Vorhersagen am besten kombiniert, um die Gesamtleistung zu verbessern;
- Stacking-Ensembles geben uns die Möglichkeit, verschiedene Arten von Basismodellen beim Training eines einzelnen Ensembles zu verwenden;
- Sie können ein Stacking-Ensemble mit der
StackingClassifier
-Klasse für Klassifikation und derStackingRegressor
-Klasse für Regression aus dersklearn
-Bibliothek implementieren.
1. Welche Art von Ensemble kann in sklearn
parallel trainiert werden?
2. Unter den Boosting-Ensemble-Modellen, welches legt während des Trainings einen größeren Schwerpunkt auf die Korrektur falsch klassifizierter Objekte?
3. In welchem Typ von Ensemble können wir verschiedene Arten von Basismodellen gleichzeitig verwenden, wenn wir ein Ensemble trainieren?
Danke für Ihr Feedback!