Wenn du dich für Machine-Learning-Algorithmen interessierst, hast du bestimmt schon einmal irgendwo die Wörter „Boosting“ oder „Boost“ gesehen. Man findet sie in einer Vielzahl von Algorithmus-Wettbewerben und sie erzielen oft sehr gute Ergebnisse. Aber was genau ist Boosting?
In diesem Artikel lernst du den Unterschied zwischen einem Boosting- und einem Bagging-Algorithmus kennen. Danach wirst du die Funktionsweise der Boosting-Algorithmen AdaBoost, Gradient Boost und XGBoost verstehen.Bagging, Boosting, was genau ist das?
Bagging
Um zu definieren, was Boosting ist, sollte zunächst definiert werden, was Bagging ist. Bagging ist eine Technik in der künstlichen Intelligenz, bei der eine große Anzahl von Algorithmen mit geringer Einzelleistung zu einem viel effizienteren Algorithmus zusammengestellt wird. Die Algorithmen mit geringer Leistung werden als „weak learners“ bezeichnet und das resultierende Ergebnis als „strong learner“. Die Idee hinter diesem Algorithmus ist, dass viele kleine Algorithmen effizienter sein können als ein großer Algorithmus.
Einfach gesagt, kann man sich diesen Prozess gedanklich als einen großen Wald aus kleinen Sträuchern verschiedener Arten vorstellen. Durch die Vielfalt der Bäume, aus denen der Wald besteht, ist er witterungsbeständiger als eine große, hundertjährige Eiche.
Die „weak leaners“ können unterschiedlicher Natur sein und unterschiedliche Leistungen erbringen, aber sie müssen voneinander unabhängig sein.
Die Zusammenstellung der „weak learners“ (Büsche) zu „strong learners“ (Wald) erfolgt durch Abstimmung. Das heißt, jeder „weak learner“ gibt eine Antwort (eine Stimme) ab und die Vorhersage des „strong learners“ ist der Durchschnitt aller abgegebenen Antworten.
Wenn du dich für Bagging interessierst, kannst du dir diesen Artikel ansehen, der die Funktionsweise des berühmtesten Bagging-Algorithmus vorstellt: den Random Forest.
Boosting
Die Boosting-Algorithmen basieren auf demselben Prinzip wie die Bagging-Algorithmen. Der Unterschied zeigt sich bei der Erstellung von „weak learners“. Beim Boosting sind die Algorithmen nicht mehr unabhängig. Stattdessen wird jeder „weak learner“ geschult, um die Fehler der vorherigen „weak learner“ zu korrigieren. Wenn wir also das Bild des Waldes aufgreifen, wurde hier jeder Strauch sorgfältig gepflanzt, um den Wald wetterfester zu machen. In diesem Artikel werden wir die Funktionsweise der Algorithmen Adaboost, Gradient Boosting und XGBoost. Diese Algorithmen sind wahrscheinlich die bekanntesten Boosting-Algorithmen.Was ist Adaboost?
Adaboost wurde erstmals von Yoav Freund und Robert Schapire verwendet und gewann 2003 den Gödel-Preis. Adaboost verwendet Entscheidungsbäume, deren Funktionsweise du in diesem Artikel detailliert nachlesen kannst. Die „weak learners“ in AdaBoost sind normalerweise Entscheidungsbäume mit nur zwei Zweigen und zwei Blättern (auch als Stämme bezeichnet), aber es können auch andere Arten von Klassifizierern verwendet werden. Hier sind die Schritte zum Aufbau des ersten „weak learners“, den wir w1 nennen werden:- Jeder Zeile des Datasets wird die gleiche Gewichtung zugewiesen.
- Man trainiert w1 so, dass die Anzahl der richtigen Antworten maximiert wird.
- Man gibt w1 eine Note aufgrund seiner Leistung
- Die Gewichtung der Zeilen wird entsprechend den Fehlern des letzten „weak learners“ geändert.
- Workout eines „weak learner“, um die Anzahl der richtigen Antworten auf den Zeilen mit hohem Gewicht zu maximieren
- Man gibt diesem „weak learner“ je nach Leistung eine Note
Was ist Gradient Boosting?
Der Gradient Boosting-Algorithmus hat viele Gemeinsamkeiten mit Adaboost. Genau wie bei Adaboost handelt es sich um eine Reihe von „weak learners“, die nacheinander erstellt werden und einen „strong learner“ bilden. Darüber hinaus wird jeder „weak learner“ trainiert, um die Fehler der vorherigen „weak learners“ zu korrigieren. Dennoch haben im Gegensatz zu Adaboost alle „weak learners“ im Abstimmungssystem das gleiche Gewicht, unabhängig von ihrer Leistung. Wir werden nun kurz auf die Funktionsweise des Algorithmus eingehen: Der erste „weak learner“ (w1) ist sehr grundlegend, er ist einfach der Durchschnitt der Beobachtungen. Er ist also nicht sehr effizient, aber er wird als Grundlage für den Rest des Algorithmus dienen. Anschließend berechnen wir die Abweichung zwischen diesem Mittelwert und der Realität, die wir als erstes Residuum bezeichnen. Im Allgemeinen bezeichnen wir hier die Abweichung zwischen der Vorhersage des Algorithmus, der gerade erstellt wird, und der Realität als Residuum. Das Besondere an Gradient Boosting ist, dass es versucht, in jedem Schritt nicht die Daten selbst, sondern die Residuen vorherzusagen. So wird der zweite „weak learner“ trainiert, um den ersten Rest vorherzusagen. Die Vorhersagen des zweiten weak learners werden dann mit einem Faktor kleiner als 1 multipliziert. Die Idee hinter der Multiplikation ist, dass viele kleine Schritte genauer sind als wenige große Schritte. Die Multiplikation verringert also die Größe der „Schritte“, um die Genauigkeit zu erhöhen. Das Ziel ist es, die Vorhersagen des Mittelwertmodells nach und nach von der Realität „wegzuziehen“. Von diesem Zeitpunkt an folgt die Erstellung von Weak Learners immer dem gleichen Muster:- Aus den letzten Vorhersagen werden die neuen Residuen (Abweichung zwischen Realität und Vorhersage) berechnet.
- Workout des neuen „weak learner“, um diese Residuen vorherzusagen
- Die Vorhersagen dieses „weak learner“ werden mit einem Faktor kleiner als 1 multipliziert.
- Man erhält neue Vorhersagen, die oft etwas besser sind als die vorherigen.

