Ich habe ein wenig über das Verbessern von Algorithmen für Klassifizierungsaufgaben und insbesondere von Adaboost gelesen. Ich verstehe, dass der Zweck von Adaboost darin besteht, mehrere "schwache Lernende" aufzunehmen und durch eine Reihe von Iterationen von Trainingsdaten die Klassifizierer dazu zu bringen, Klassen vorherzusagen, bei denen die Modelle wiederholt Fehler machen. Ich habe mich jedoch gefragt, warum so viele meiner Lesungen Entscheidungsbäume als schwachen Klassifikator verwendet haben. Gibt es dafür einen besonderen Grund? Gibt es bestimmte Klassifikatoren, die besonders gute oder schlechte Kandidaten für Adaboost sind?
machine-learning
classification
algorithms
boosting
kylerthecreator
quelle
quelle
Antworten:
Ich habe darüber in einer Antwort auf eine verwandte SO-Frage gesprochen . Entscheidungsbäume eignen sich im Allgemeinen nur sehr gut zum Boosten, viel mehr als andere Algorithmen. Die Aufzählungspunkt- / Zusammenfassungsversion lautet wie folgt:
quelle
Ich habe keine Lehrbuchantwort. Hier sind jedoch einige Gedanken.
Das Boosten kann im direkten Vergleich mit dem Absacken gesehen werden. Dies sind zwei verschiedene Ansätze des Bias-Varianz-Kompromiss-Dilemmas. Während das Absacken schwache Lernende hat, verringern einige Lernende mit geringer Verzerrung und hoher Varianz durch Varianz des Absackensembles die Varianz für eine kleine Verzerrung. Boosting hingegen funktioniert gut mit verschiedenen schwachen Lernenden. Die fördernden schwachen Lernenden haben eine hohe Tendenz und eine geringe Varianz. Indem das Boosting-Ensemble einen Lernenden übereinander aufbaut, versucht es, die Tendenz für eine kleine Varianz zu verringern.
Wenn Sie beispielsweise in Betracht ziehen, das Absacken und Boosten mit Bäumen als schwache Lernende zu verwenden, ist der beste Weg, kleine / kurze Bäume mit Boosten und sehr detaillierte Bäume mit Absacken zu verwenden. Aus diesem Grund verwendet ein Boosting-Verfahren sehr oft einen Entscheidungsstumpf als schwachen Lernenden. Dies ist der kürzest mögliche Baum (eine einzelne if-Bedingung in einer einzelnen Dimension). Dieser Entscheidungsstumpf ist sehr stabil und weist daher eine sehr geringe Varianz auf.
Ich sehe keinen Grund, Bäume mit Boosting-Verfahren zu verwenden. Kurze Bäume sind jedoch einfach, leicht zu implementieren und leicht zu verstehen. Ich denke jedoch, dass Ihr schwacher Lernender eine geringe Varianz haben muss, starr sein muss, mit sehr wenigen Freiheitsgraden, um mit einem Boosting-Verfahren erfolgreich zu sein. Zum Beispiel sehe ich keinen Grund, als schwacher Lernender ein neuronales Netzwerk zu haben.
Darüber hinaus muss beachtet werden, dass Breiman bei bestimmten Boosting-Verfahren, beispielsweise beim Gradienten-Boosting, festgestellt hat, dass, wenn der schwache Lernende ein Baum ist, die Funktionsweise des Boostings optimiert werden kann. So haben wir gradientenverstärkende Bäume. Das ESTL-Buch enthält eine schöne Darstellung von Boosting.
quelle