AdaBoost-Algorithmus

Die Übersetzung des Artikels wurde am Vorabend des Beginns des Fortgeschrittenenkurses "Mathematik für Datenwissenschaften" vorbereitet .



Einführung


Der AdaBoost-Algorithmus kann verwendet werden, um die Leistung jedes Algorithmus für maschinelles Lernen zu verbessern. Maschinelles Lernen ist zu einem leistungsstarken Werkzeug geworden, um Vorhersagen auf der Grundlage großer Datenmengen zu treffen. Es ist heute so beliebt geworden, dass Anwendungen für maschinelles Lernen auch bei alltäglichen Aufgaben Anwendung finden. Eines der häufigsten Beispiele sind Produktempfehlungen, die auf früheren Einkäufen eines Kunden basieren. Maschinelles Lernen, oft als prädiktive Analyse oder prädiktive Modellierung bezeichnet, kann als die Fähigkeit von Computern definiert werden, ohne explizite Programmierung zu lernen. Beim maschinellen Lernen werden vorgefertigte Algorithmen verwendet, um Eingabedaten zu analysieren und anhand bestimmter Kriterien Vorhersagen zu treffen.

Was ist der AdaBoost-Algorithmus?


Beim maschinellen Lernen ist eine Verstärkung erforderlich, um schwache Klassifikatoren in starke umzuwandeln. Ein schwacher Lernalgorithmus oder Klassifikator ist ein Lernalgorithmus, der besser als zufälliges Erraten funktioniert und im Falle einer Umschulung gut funktioniert, da mit einer großen Anzahl schwacher Klassifikatoren jeder schwache Klassifikator besser funktioniert als zufällige Stichproben. Als schwacher Klassifikator wird häufig der übliche thresholdnach einem bestimmten Kriterium verwendet. Wenn das Vorzeichen höher liegt threshold(Schwellenwert) als vorhergesagt, bezieht es sich auf den positiven Bereich, andernfalls auf den negativen.

AdaBoost bedeutet "Adaptive Boosting" oder "Adaptive Boosting". Es verwandelt schwache Lernalgorithmen in starke, um Klassifizierungsprobleme zu lösen.

Die endgültige Gleichung für die Klassifizierung kann wie folgt lauten:



Hier ist f m der m-te schwache Klassifizierer, wobei m für das entsprechende Gewicht verantwortlich ist.

Wie funktioniert der AdaBoost-Algorithmus?


AdaBoost kann verwendet werden, um die Leistung von Algorithmen für maschinelles Lernen zu verbessern . Es funktioniert am besten mit schwachen Trainingsalgorithmen, sodass solche Modelle bei der Lösung des Klassifizierungsproblems eine Genauigkeit erzielen können, die weit über dem Zufall liegt. Die bei AdaBoost am häufigsten verwendeten Algorithmen sind einstufige Entscheidungsbäume . Ein schwacher Lernalgorithmus ist ein Klassifikator oder Vorhersagealgorithmus, der hinsichtlich der Genauigkeit relativ schlecht funktioniert. Darüber hinaus können wir sagen, dass schwache Klassifizierer einfach zu berechnen sind, sodass Sie viele Entitäten des Algorithmus kombinieren können, um mithilfe von Boosting einen stärkeren Klassifizierer zu erstellen.

Wenn wir einen Datensatz haben, in dem n die Anzahl der Punkte und ist



Wobei -1 die negative Klasse und 1 die positive ist. Dann wird das Gewicht jedes Punktes wie unten gezeigt initialisiert:



Jedes m im folgenden Ausdruck variiert von 1 bis M.
Zuerst müssen wir einen schwachen Klassifizierer mit dem kleinsten gewichteten Klassifizierungsfehler auswählen und den Klassifizierer auf den Datensatz anwenden.



Dann berechnen wir das Gewicht des m-ten schwachen Klassifikators wie folgt:



Das Gewicht ist für jeden Klassifikator mit einer Genauigkeit von über 50% positiv. Je mehr Gewicht, desto genauer der Klassifikator. Das Gewicht wird negativ, wenn die Genauigkeit unter 50% fällt. Vorhersagen können durch Invertieren des Vorzeichens kombiniert werden. Somit kann ein Klassifikator mit einer Genauigkeit von 40% in einen Klassifikator mit einer Genauigkeit von 60% umgewandelt werden. Der Klassifikator trägt also zur endgültigen Vorhersage bei, auch wenn er schlechter funktioniert als das zufällige Erraten. Das Endergebnis ändert sich jedoch in keiner Weise unter dem Einfluss eines Klassifikators, dessen Genauigkeit 50% beträgt.

Der Exponent im Zähler ist bei falscher Klassifizierung durch den Klassifizierer mit positivem Gewicht immer größer als 1. Nach der Iteration erhöht sich das Gewicht falsch klassifizierter Objekte. Klassifikatoren mit negativem Gewicht verhalten sich ähnlich. Es gibt einen Unterschied in der Vorzeichenumkehr: Die korrekte Klassifizierung wird falsch. Die endgültige Prognose kann berechnet werden, indem der Beitrag jedes Klassifikators berücksichtigt und die Summe seiner gewichteten Prognosen berechnet wird.

Das Gewicht für jeden Punkt wird wie folgt aktualisiert:



Hier ist Z m ein Normalisierungsparameter. Es muss sichergestellt werden, dass die Summe aller Instanzgewichte 1 ist.

Wo wird der AdaBoost-Algorithmus verwendet?


AdaBoost kann zur Gesichtserkennung verwendet werden, da es ein Standardalgorithmus für solche Aufgaben ist. Es wird eine Ablehnungskaskade verwendet, die aus mehreren Schichten von Klassifizierern besteht. Wenn der Erkennungsbereich keine Gesichter auf einer Ebene erkennt, wird er abgelehnt. Der erste Klassifizierer in der Region verwirft die negative Region, um die Rechenkosten zu minimieren. Obwohl AdaBoost zum Kombinieren schwacher Klassifizierer verwendet wird, werden AdaBoost-Prinzipien auch verwendet, um die besten Funktionen für jede Ebene in der Kaskade zu finden.

Vor- und Nachteile des AdaBoost-Algorithmus


Einer der vielen Vorteile des AdaBoost-Algorithmus besteht darin, dass er einfach, schnell und einfach zu programmieren ist. Darüber hinaus ist es flexibel genug, um es mit jedem Algorithmus für maschinelles Lernen zu kombinieren, ohne Parameter einzustellen, mit Ausnahme von Parameter T. Es ist auf Lernaufgaben erweiterbar, die komplizierter als die binäre Klassifizierung sind, und ist universell genug, da es mit numerischen oder Textdaten verwendet werden kann.

AdaBoost hat auch mehrere Nachteile, zumindest die Tatsache, dass dieser Algorithmus empirisch bewiesen ist und sehr anfällig für gleichmäßig verteiltes Rauschen ist. Schwache Klassifikatoren, wenn sie zu schwach sind, können zu schlechten Ergebnissen und Umschulungen führen.

Beispiel für einen AdaBoost-Algorithmus


Nehmen Sie als Beispiel die Zulassungskampagne der Universität, bei der ein Bewerber entweder an der Universität zugelassen werden kann oder nicht. Hier können Sie verschiedene quantitative und qualitative Daten erfassen. Beispielsweise kann das Ergebnis der Zulassung, das als „Ja“ oder „Nein“ ausgedrückt werden kann, quantifiziert werden, während die Fähigkeiten und Hobbys der Schüler quantifiziert werden können. Wir können leicht die richtige Klassifizierung der Trainingsdaten finden. Angenommen, wenn sich ein Schüler in einer bestimmten Disziplin gut gezeigt hat, wird er mit einer höheren Wahrscheinlichkeit akzeptiert. Das Vorhersagen mit hoher Genauigkeit ist jedoch eine komplizierte Angelegenheit, und hier helfen schwache Klassifikatoren.

Fazit


AdaBoost hilft bei der Auswahl eines Trainingssatzes für jeden Klassifikator, der basierend auf den Ergebnissen des vorherigen Klassifikators trainiert wird. Für die Kombination der Ergebnisse bestimmt der Algorithmus, wie viel Gewicht jedem Klassifizierer in Abhängigkeit von der empfangenen Antwort beigemessen werden soll. Es kombiniert schwache Klassifizierer, um starke und korrekte Klassifizierungsfehler zu erzeugen, und ist auch ein äußerst erfolgreicher Boosting-Algorithmus für binäre Klassifizierungsprobleme.



Erfahren Sie mehr über den Kurs.



All Articles