Maschinelles Lernen und neuronale Netze - Seite 70

 

7.3 Bagging (L07: Ensemble-Methoden)



7.3 Bagging (L07: Ensemble-Methoden)

Nachdem das Konzept der Mehrheitsentscheidung im vorherigen Video ausführlich besprochen wurde, wird das kommende Video auf eine weitere grundlegende Methode eingehen, die als Bagging bekannt ist, was für Bootstrap Aggregating steht. Der Begriff „Bagging“ leitet sich aus der Kombination der Initialen „B“ und „ag G“ ab und steht in engem Zusammenhang mit dem Konzept des Bootstrapping. Diese Technik wurde ursprünglich von Leo Breiman vorgeschlagen, einer prominenten Persönlichkeit auf dem Gebiet der Entscheidungsbäume, insbesondere der Klassifizierungs- und Regressionsbäume (CART). Wir werden Breimans Beiträge in einem zukünftigen Vortrag, der sich auf Zufallswälder konzentriert, genauer untersuchen.

Lassen Sie uns zunächst den Algorithmus für das Einpacken skizzieren. Obwohl es auf den ersten Blick komplex erscheinen mag, ist es eigentlich ganz einfach und besteht aus nur sechs Codezeilen, oder fünf, wenn wir die Leerzeile weglassen. Der Algorithmus funktioniert wie folgt: Nehmen wir an, wir haben insgesamt n Bootstrap-Samples oder -Runden. Für jede Runde i ziehen wir eine Bootstrap-Stichprobe der Größe m aus dem Trainingssatz. Hier stellt m die Größe des Trainingssatzes dar. Es ist wichtig zu beachten, dass die Verwendung einzelner Buchstaben für Variablen unkonventionell erscheinen mag, sie jedoch aufgrund der durch die Wahl der Buchstaben auferlegten Einschränkungen notwendig war. Im vorherigen Video haben wir n verwendet, um die Anzahl der Bootstrap-Samples darzustellen, was der Anzahl der Klassifikatoren in den von uns besprochenen Ensemble-Voting-Klassifikatoren entspricht.

Für jedes Bootstrap-Beispiel trainieren wir einen Klassifikator und wenden Mehrheitsentscheidungen an. Dieser Prozess ist dem Ensemble-Voting-Klassifikator, den wir zuvor behandelt haben, ziemlich ähnlich. Der einzige Unterschied besteht darin, dass wir nicht jeden Klassifikator auf dem gesamten Trainingssatz trainieren, sondern jeden Basisklassifikator auf einem aus dem Trainingssatz extrahierten Bootstrap-Beispiel.

Bevor wir fortfahren, lassen Sie uns kurz das Konzept des Bootstrap-Samplings zusammenfassen. Betrachten Sie einen Datensatz mit einer Größe von m. Jede aus diesem Datensatz gezogene Bootstrap-Stichprobe hat basierend auf dem oben genannten Algorithmus auch eine Größe von m. Beim Bootstrap-Sampling werden Datenpunkte zufällig aus dem Datensatz ausgewählt und ersetzt. Wenn wir beispielsweise zehn Datenpunkte haben, die mit eins bis zehn beschriftet sind, und wir eine Stichprobenziehung mit Ersetzung durchführen, werden einige der Datenpunkte im Bootstrap-Datensatz dupliziert. Diese Duplizierung tritt auf, weil jede Position unabhängig aus dem Trainingssatz gezogen wird. Folglich können einige Datenpunkte mehrmals erscheinen, während andere möglicherweise überhaupt nicht erscheinen, was zu sogenannten Out-of-Bag-Stichproben (OOB) führt. Diese OOB-Beispiele sind die Datenpunkte, die nicht im Bootstrap-Beispiel für eine bestimmte Runde enthalten sind.

Um ein besseres Verständnis der Wahrscheinlichkeit zu erhalten, die mit der Nichtauswahl eines bestimmten Elements in einer Bootstrap-Stichprobe verbunden ist, untersuchen wir die Wahrscheinlichkeit, dass ein bestimmter Datenpunkt für eine einzelne Position nicht ausgewählt wird. Die Wahrscheinlichkeit, einen bestimmten Datenpunkt für eine bestimmte Position auszuwählen, beträgt 1/m, da der Trainingssatz m Beispiele enthält. Daher beträgt die Wahrscheinlichkeit, dass dieser bestimmte Datenpunkt nicht ausgewählt wird, 1 - 1/m. Da wir m Auswahlmöglichkeiten haben, beträgt die Wahrscheinlichkeit, kein bestimmtes Beispiel in der gesamten Bootstrap-Stichprobe auszuwählen, (1 – 1/m)^n. Wenn m ausreichend groß wird, werden etwa 36,8 % der Punkte nicht in die Bootstrap-Stichprobe einbezogen. Folglich sind 63,2 % der Datenpunkte in der Bootstrap-Stichprobe eindeutig, während die übrigen Punkte Duplikate sind.

Die Visualisierung der Bootstrap-Probenahme innerhalb des Absackvorgangs kann zum weiteren Verständnis des Konzepts beitragen. Es werden mehrere Bootstrap-Stichprobenrunden durchgeführt, die jeweils zu einer neuen Bootstrap-Stichprobe führen. Anschließend wird für jedes Bootstrap-Beispiel ein Klassifikator unabhängig trainiert. Dieser Prozess erleichtert die Modellparallelität, da keine Abhängigkeit zwischen den Bootstrap-Runden besteht. Folglich kann jede Runde gleichzeitig ausgeführt werden, was das Potenzial für eine parallele Verarbeitung erhöht.

Das Flussdiagramm des Absackklassierers gibt einen Überblick über die einzelnen Schritte. Ähnlich wie der Voting-Klassifikator beginnt der Bagging-Klassifikator mit einem Trainingssatz. Beim Bagging verwenden wir den Trainingssatz jedoch wieder, um mehrere Bootstrap-Beispiele zu erstellen. Jedes Bootstrap-Beispiel wird zum Trainieren eines Klassifikators verwendet, was insgesamt m Klassifikatoren ergibt. Jeder Klassifikator generiert Vorhersagen und die endgültige Vorhersage wird durch Mehrheitsentscheidung bestimmt. Dieser Ansatz trägt dazu bei, Überanpassungen zu reduzieren und die Stabilität und Verallgemeinerung des Modells zu verbessern.

Das Absacken bietet mehrere Vorteile:

  • Reduzierung der Varianz: Durch die Generierung mehrerer Bootstrap-Stichproben und das Training unabhängiger Klassifikatoren für jede Stichprobe reduziert Bagging effektiv die Varianz der Vorhersagen. Diese Varianzreduzierung ist besonders vorteilhaft, wenn der Basisklassifikator zu einer Überanpassung neigt.
  • Verbesserte Stabilität: Da beim Bagging mehrere Klassifizierer auf verschiedenen Bootstrap-Proben trainiert werden, sorgt es für Stabilität des Modells. Kleine Änderungen im Trainingssatz haben mit geringerer Wahrscheinlichkeit einen signifikanten Einfluss auf die endgültige Vorhersage, was zu einem robusteren Modell führt.
  • Umgang mit komplexen Datensätzen: Bagging ist äußerst effektiv bei der Verarbeitung komplexer Datensätze, die durch hohe Varianz und Rauschen gekennzeichnet sind. Durch die Verwendung mehrerer Klassifikatoren und die Aggregation ihrer Vorhersagen erfasst das Bagging unterschiedliche Muster und verringert den Einfluss von Ausreißern oder verrauschten Daten.
  • Parallele Verarbeitung: Bagging ermöglicht die parallele Verarbeitung der Bootstrap-Proben und das Training der Klassifikatoren. Jedes Bootstrap-Beispiel ist unabhängig von den anderen und ermöglicht so eine effiziente Nutzung der Rechenressourcen.

Trotz seiner Vorteile weist das Absacken auch einige Einschränkungen auf:

  • Interpretierbarkeit: Da beim Bagging Vorhersagen mehrerer Klassifikatoren kombiniert werden, kann die Interpretation der einzelnen Beiträge jedes Klassifikators zur endgültigen Vorhersage eine Herausforderung sein. Während das Ensemble-Modell möglicherweise genaue Vorhersagen liefert, wird es komplexer, die zugrunde liegenden Überlegungen zu verstehen.
  • Rechenkomplexität: Das Training mehrerer Klassifikatoren auf verschiedenen Bootstrap-Stichproben erhöht die Rechenkomplexität des Bagging-Algorithmus. Der Zeit- und Ressourcenaufwand für das Training und die Aggregation der Vorhersagen kann insbesondere bei großen Datensätzen erheblich sein.
  • Mögliche Überanpassung: Obwohl das Absacken das Risiko einer Überanpassung im Vergleich zu einem einzelnen Klassifikator verringert, ist es nicht völlig immun gegen eine Überanpassung. Wenn der Basisklassifikator bereits zu einer Überanpassung neigt, führt das Einsacken möglicherweise nicht zu wesentlichen Verbesserungen.
  • Begrenzte Vielfalt: Beim Bagging werden verschiedene Bootstrap-Stichproben erstellt, um verschiedene Klassifikatoren zu erhalten. In bestimmten Fällen, in denen der Datensatz klein ist oder eine begrenzte Variabilität aufweist, sind die Bootstrap-Stichproben jedoch möglicherweise nicht ausreichend vielfältig, was die Wirksamkeit des Bagging verringert.

In diesem Abschnitt werden wir uns eingehender mit den zuvor besprochenen Konzepten befassen. Wenn Vorhersagen eines Modells erhebliche Abweichungen aufweisen, weist dies auf eine hohe Varianz hin. Betrachten wir zum Beispiel einen komplexen Entscheidungsbaum für den orangefarbenen Fall. Die Vorhersagen dieses Modells werden sich erheblich von den Vorhersagen des blauen Modells unterscheiden. Ebenso verfügt der grüne Fall über einen eigenen Satz unterschiedlicher Vorhersagen. Diese unterschiedlichen Vorhersagen veranschaulichen das Konzept der hohen Varianz.

Um die Auswirkungen hoher Varianz besser zu verstehen, untersuchen wir die tatsächlichen Entscheidungsbäume, die an diese Datensätze angepasst wurden. Trotz ihrer Variationen gelingt es dem Fall mit hoher Varianz immer noch, eine gute durchschnittliche Vorhersage zu liefern. Es ist wichtig zu beachten, dass die Durchschnittsvorhersage der drei Modelle (Modell eins, zwei und drei), die an verschiedene Trainingssätze angepasst wurden, zu einer Vorhersage führt, die der wahren Funktion sehr nahe kommt, auch wenn ich hier nicht explizit die durchschnittliche Vorhersage gezeigt habe . Im Gegensatz dazu sind High-Bias-Modelle, wie bereits gezeigt, nur an bestimmten Positionen genau, an denen sich die Linien mit der wahren Funktion schneiden. In allen anderen Fällen schneiden sie aufgrund ihrer hohen Voreingenommenheit schlecht ab.

Durch die Verwendung eines Modells mit hoher Varianz und die Mittelung der Vorhersagen mehrerer Modelle können wir jedoch immer noch genaue Vorhersagen erzielen. Dieses Konzept bildet die Grundlage für das Bagging, bei dem verschiedene Trainingssätze verwendet werden, die durch Bootstrap-Sampling generiert werden. Beim Bagging wird jede Bootstrap-Stichprobe verwendet, um einen Entscheidungsbaum anzupassen, was zu mehreren Modellen mit hoher Varianz führt. Diese Modelle werden dann mittels Ensemble-Voting gemittelt, entweder durch Berücksichtigung von Klassenbezeichnungen in Klassifizierungsaufgaben oder durch Regressionsausgaben in Regressionsaufgaben. Dieser Mittelungsprozess trägt dazu bei, hochpräzise Vorhersagen zu erhalten, indem er die Varianz verringert.

Durch die Mittelung der Vorhersagen der drei Entscheidungsbäume, die an verschiedene Trainingssätze angepasst wurden, würden wir eine durchschnittliche Vorhersage erhalten, die der wahren Funktion sehr nahe kommt. Diese Mittelung ähnelt dem Konzept des Bagging, bei dem jeder Trainingssatz als Bootstrap-Datensatz fungiert. Zweitens ist es wichtig zu beachten, dass Entscheidungsbäume keine Werte interpolieren können. Sie können nur Zielwerte vorhersagen, die im Trainingssatz vorhanden sind, oder deren Durchschnittswerte. Somit ist die in der Abbildung gezeigte schrittweise Funktion eine Annäherung an einen unbeschnittenen Entscheidungsbaum.

Zusammenfassend lässt sich sagen, dass Bagging eine wirksame Technik zur Reduzierung der Varianz durch Mittelung von Vorhersagen aus Modellen mit hoher Varianz ist. Durch den Einsatz von Parallelisierung kann das Bagging die Modellanpassung durch die Verwendung mehrerer CPUs beschleunigen. Bei einigen Windows-Computern kann es jedoch zu Problemen mit der Mehrfachverarbeitung in Python kommen, wodurch die Verwendung mehrerer Jobs eingeschränkt wird. Erwähnenswert ist auch, dass Bagging-Klassifikatoren die Out-of-Bag-Genauigkeit berechnen können. Dazu gehört die Verwendung der Datenpunkte, die nicht im Bootstrap-Beispiel enthalten sind, um die Modellleistung zu bewerten. Dies stellt eine nützliche Metrik zur Beurteilung der Generalisierungsfähigkeit des Modells dar. Im Codebeispiel mit scikit-learn kann der Bagging-Klassifikator aus dem Ensemble-Submodul importiert werden.

Der Basisschätzer, in diesem Fall der Entscheidungsbaum, wird mit der maximalen Tiefe auf „Keine“ initialisiert, um einen ungekürzten Entscheidungsbaum zu erstellen. Die Anzahl der Schätzer bestimmt die Anzahl der Bootstrap-Runden, und Parallelisierung kann durch entsprechende Einstellung des Parameters n_jobs erreicht werden. Darüber hinaus ermöglicht der Parameter oob_score die Berechnung des Out-of-Bag-Scores. Nach dem Training des Absackklassifikators können der Out-of-Bag-Score und die Testsatzgenauigkeit bewertet werden.

Insgesamt bietet das Bagging einen effektiven Ansatz zur Minderung hoher Varianz und zur Verbesserung der Vorhersagegenauigkeit durch die Kombination mehrerer Modelle mit hoher Varianz. Zusammenfassend ist Bagging eine leistungsstarke Ensemble-Methode, die mehrere auf verschiedenen Bootstrap-Stichproben trainierte Klassifikatoren kombiniert, um die Vorhersagegenauigkeit zu verbessern und die Varianz zu verringern. Dies ist besonders nützlich beim Umgang mit komplexen Datensätzen und kann die Stabilität und Generalisierung des Modells verbessern. Es weist jedoch auch einige Einschränkungen auf, darunter eine verringerte Interpretierbarkeit und eine erhöhte Rechenkomplexität.

7.3 Bagging (L07: Ensemble Methods)
7.3 Bagging (L07: Ensemble Methods)
  • 2020.10.20
  • www.youtube.com
In this video, we look at bagging (bootstrap aggregating) and also introduce the bias-variance trade-off and decomposition in order to understand why bagging...
 

7.4 Boosting und AdaBoost (L07: Ensemble-Methoden)


7.4 Boosting und AdaBoost (L07: Ensemble-Methoden)

Im vorherigen Video haben wir das Konzept von Modellen mit hoher Varianz und geringer Verzerrung besprochen und uns dabei speziell auf unbereinigte Entscheidungsbäume konzentriert. Wir haben auch etwas über eine Technik namens Bagging gelernt, die dabei hilft, die Leistung von Modellen mit hoher Varianz zu verbessern, indem sie die Varianz durch Mittelung verringert.

In diesem Vortrag werden wir unsere Aufmerksamkeit auf Boosting richten, das in die entgegengesetzte Richtung wirkt. Beim Boosting werden Modelle mit hoher Verzerrung und geringer Varianz verwendet, z. B. einfache Entscheidungsbaumstümpfe, und diese werden verstärkt, um die Gesamtleistung des Modells zu verbessern. Dieses erste Video bietet einen Überblick über Boosting-Konzepte und stellt Boosting im Allgemeinen vor, während sich das nächste Video mit einer beliebten Boosting-Art namens Gradient Boosting befasst.

Boosting kann grob in zwei Haupttypen eingeteilt werden: adaptives Boosting (z. B. Adaboost) und Gradient Boosting. In der Vergangenheit wurde Gradient Boosting aufgrund seiner Rechenkomplexität weniger häufig eingesetzt. Allerdings haben jüngste Fortschritte, wie die Einführung von XGBoost im Jahr 2016, die Leistung des Gradient Boosting deutlich verbessert. Heutzutage sind sogar noch bessere Varianten wie LightGBM entstanden, die wir im nächsten Video besprechen werden. Während Gradient Boosting immer beliebter wird, ist es wichtig, das allgemeine Boosting-Verfahren durch adaptives Boosten zu verstehen.

Das Boosting-Verfahren folgt einem bestimmten Schema, das sich vom Absackverfahren unterscheidet. Ein bemerkenswerter Unterschied ist das Vorhandensein von Abhängigkeiten zwischen Runden. Das Boosting-Verfahren umfasst mehrere Klassifikatoren, die als Klassifikator eins, Klassifikator zwei usw. bezeichnet werden, bis hin zu Klassifikator M. Zunächst beginnen wir mit einem regulären Trainingsdatensatz und passen Klassifikator eins an. Basierend auf den Vorhersagen von Klassifikator eins gewichten wir die Trainingsstichproben mithilfe einer bestimmten Gewichtungsmethode, auf die wir später detaillierter eingehen werden. Anschließend verwendet der zweite Klassifikator diesen gewichteten Trainingsdatensatz und der Prozess wird fortgesetzt. Die Gewichtung hängt von den Vorhersagen der vorherigen Klassifikatoren ab, was eine Parallelisierung des Boostings erschwert. Im Gegensatz zum Bagging, bei dem Klassifikatoren gleichzeitig trainiert werden können, muss beim Boosting gewartet werden, bis der vorherige Klassifikator Vorhersagen getroffen hat, bevor der Datensatz für den nächsten Klassifikator aktualisiert wird. Bei der Erstellung endgültiger Vorhersagen wird beim Boosting eine gewichtete Kombination der Klassifikatoren verwendet, im Gegensatz zur Ensemble-Abstimmung oder Mittelung beim Bagging. Die gewichtete Kombination wird auf der Grundlage der Vorzeichenfunktion bestimmt, die der Vorhersage jedes Klassifikators Gewichte zuweist. Bei der binären Klassifizierung gibt die Vorzeichenfunktion 1 für positive Ergebnisse und -1 für negative Ergebnisse zurück. Diese gewichtete Vorhersage führt zu einer endgültigen Vorhersage von entweder -1 oder 1. Der Prozess kann erweitert werden, um mithilfe von Indikatorfunktionen eine beliebige Anzahl von Klassen zu verarbeiten.

Um das allgemeine Boosting-Verfahren besser zu verstehen, skizzieren wir die erforderlichen Schritte. Zunächst initialisieren wir für jedes Trainingsbeispiel einen Gewichtsvektor mit einheitlichen Gewichten. Diese Gewichte stellen die Wichtigkeit jedes Trainingsbeispiels dar. Dann treten wir in eine Schleife ein, die die verschiedenen Klassifikatoren oder Runden des Boosting-Verfahrens durchläuft. In jeder Runde wenden wir auf die gewichteten Trainingsbeispiele einen schwachen Lernenden an, der einen etwas besseren Klassifikator als zufällige Schätzungen darstellt. Wir können bestimmten Beispielen höhere Gewichte zuweisen oder Bootstrap-Stichproben mit gewichteten Wahrscheinlichkeiten ziehen. Nachdem wir den schwachen Lernenden trainiert haben, erhöhen wir die Gewichtung für falsch klassifizierte Beispiele, sodass sich der nächste Klassifizierer auf diese falsch klassifizierten Beispiele konzentrieren kann. Diese Schleife wird mehrmals wiederholt und schließlich wird eine gewichtete Mehrheitsabstimmung über die trainierten Klassifikatoren durchgeführt, um die endgültigen Vorhersagen zu erhalten.

Konzentrieren wir uns nun auf den Adaboost-Algorithmus, der eng mit dem zuvor besprochenen allgemeinen Boosting-Verfahren übereinstimmt. Adaboost ähnelt dem allgemeinen Boosting-Modell, bei dem Klassifikatoren an gewichtete Trainingsbeispiele angepasst werden. Der Algorithmus beginnt mit der Initialisierung der Gewichte für jeden Trainingsdatenpunkt. Dann beginnt die Hauptfor-Schleife, die die Adaboost-Runden umfasst. In jeder Runde werden die Gewichte normalisiert, um sicherzustellen, dass sie in der Summe eins ergeben. Als nächstes wird ein schwacher Lernender mit dem gewichteten Trainingssatz trainiert und die gewichteten Vorhersagefehler werden berechnet. Die Vorhersagefehler werden mit den Trainingssatzgewichten gewichtet und geben die Fehlklassifizierungen an. Die Vorhersagefehler werden dann verwendet, um den Beitrag des schwachen Lernenden zur endgültigen Vorhersage zu berechnen. Der Beitrag wird durch die Genauigkeit des schwächeren Lernenden bestimmt, wobei genauere Lernende einen höheren Beitrag leisten. Der Beitrag wird dann verwendet, um die Gewichte der Trainingsbeispiele zu aktualisieren. Die Gewichte der falsch klassifizierten Beispiele werden erhöht, während die Gewichte der korrekt klassifizierten Beispiele verringert werden. Diese Anpassung unterstreicht die Bedeutung der falsch klassifizierten Beispiele in nachfolgenden Runden.

Nach der Aktualisierung der Gewichtungen geht der Prozess in die nächste Runde über, in der der schwache Lernende mit dem aktualisierten gewichteten Trainingssatz trainiert wird. Dieser iterative Prozess wird für die angegebene Anzahl von Runden oder bis ein bestimmtes Kriterium erfüllt ist, fortgesetzt. Sobald alle Runden abgeschlossen sind, wird die endgültige Vorhersage getroffen, indem die Vorhersagen aller schwachen Lernenden kombiniert werden. Die Gewichtung der Vorhersage jedes schwachen Lernenden wird durch seinen Beitrag zur Gesamtgenauigkeit während des Trainings bestimmt.

Der Adaboost-Algorithmus kombiniert effektiv die Vorhersagen der schwachen Lernenden, um ein starkes Ensemblemodell zu erstellen. Die der Vorhersage jedes schwachen Lernenden zugewiesenen Gewichte spiegeln seine Leistung bei der Klassifizierung der Trainingsbeispiele wider. Durch die iterative Anpassung der Gewichte und die Konzentration auf die falsch klassifizierten Beispiele ist Adaboost in der Lage, die Genauigkeit des Modells im Laufe der Zeit zu verbessern.

Es ist wichtig zu beachten, dass Adaboost empfindlich auf Ausreißer und Rauschen in den Daten reagiert. Ausreißer können erhebliche Auswirkungen auf die Gewichtsaktualisierungen haben und möglicherweise zu einer Überanpassung führen. Daher wird eine Vorverarbeitung der Daten zur Behandlung von Ausreißern und verrauschten Stichproben empfohlen. Darüber hinaus kann Adaboost zu einer Überanpassung neigen, wenn die schwachen Lernenden zu komplex sind oder die Anzahl der Runden zu hoch ist. Regularisierungstechniken wie die Begrenzung der Tiefe von Entscheidungsbäumen oder die Verwendung eines frühen Stopps können dazu beitragen, eine Überanpassung abzumildern.

Wenn wir das Konzept grob skizzieren würden, würde es so aussehen: Auf der x-Achse haben wir einen Pfeil, der den Alpha-Wert darstellt. Der Alpha-Wert bestimmt die Bedeutung jedes Klassifikators in der endgültigen Vorhersage. Wenn wir den Alpha-Wert zum Gewichten der Schätzung und Vorhersage verwenden, stellen wir fest, dass der Alpha-Wert relativ klein ist, wenn ein Klassifikator einen großen Fehler aufweist. Dies bedeutet, dass ein Klassifikator mit einem hohen Fehler für die endgültige Vorhersage nicht so wichtig ist. Andererseits haben Klassifikatoren mit kleinen Fehlern ein höheres Gewicht, da wir ihnen bei der Berechnung der Mehrheitsentscheidung mehr vertrauen.

Wir verwenden den Alpha-Wert auf zwei Arten: Erstens verwenden wir ihn, um die Schätzung und Vorhersage zu gewichten, und zweitens verwenden wir ihn, um die Gewichte für die nächste Runde zu aktualisieren. Wenn die Vorhersage korrekt ist, ist die diesem Trainingsbeispiel zugewiesene Gewichtung gering. Das bedeutet, dass wir diesem Trainingsbeispiel in der nächsten Runde keine große Aufmerksamkeit schenken, wenn wir eine korrekte Vorhersage treffen. Es gilt als einfaches Beispiel. Wenn wir andererseits einen Fehler machen, wird das Gewicht, das diesem Beispiel zugewiesen wird, größer. Das bedeutet, dass wir in der nächsten Runde den falsch klassifizierten Beispielen mehr Aufmerksamkeit schenken. Je kleiner der Alpha-Wert ist, desto größer ist die Gewichtung, die den falsch klassifizierten Beispielen zugewiesen wird.

Um dieses Konzept zu veranschaulichen, betrachten wir einen zweidimensionalen Fall. Wir haben ein Spielzeugbeispiel mit zwei Funktionen, x1 und x2. Wir passen einen Entscheidungsbaumstumpf an, bei dem es sich um einen Entscheidungsbaum mit nur einer Teilung handelt. Der Entscheidungsbaumstumpf klassifiziert einige Punkte richtig, macht aber bei anderen Fehler. In der ersten Runde von AdaBoost geben wir den falsch klassifizierten Beispielen höhere Gewichtungen und den korrekt klassifizierten Beispielen niedrigere Gewichtungen. Dann passen wir einen weiteren Entscheidungsbaumstumpf an und konzentrieren uns dabei auf die falsch klassifizierten Beispiele aus der vorherigen Runde. Dieser Prozess wird fortgesetzt, wobei jeder neue Klassifikator aus den Fehlern des vorherigen Klassifikators lernt und den falsch klassifizierten Beispielen mehr Aufmerksamkeit schenkt. Wenn wir schließlich alle Klassifikatoren mithilfe der Mehrheitsentscheidung kombinieren, erhalten wir möglicherweise einen Klassifikator, der alle Beispiele korrekt klassifiziert.

AdaBoost kann etwas kompliziert zu verstehen sein, es stehen jedoch Ressourcen zur Verfügung, die Ihnen helfen können. Das Originalpapier zu AdaBoost bietet eine ausführliche Erklärung, für eine verständlichere Einführung wird jedoch das Tutorialpapier von Manwani empfohlen. Bevor wir zu den Codebeispielen übergehen, ist es erwähnenswert, eine Modifikation des AdaBoost-Algorithmus für die Klassifizierung mehrerer Klassen namens AdaBoost.M2 oder SAMME zu erwähnen. Es führt eine kleine Modifikation des ursprünglichen Algorithmus ein, um mehrere Klassen zu verarbeiten. Es gibt auch eine Version mit reellen Zahlen namens SAMME.R. Wenn Sie interessiert sind, können Sie diese Variationen in den jeweiligen Artikeln erkunden.

In scikit-learn ist AdaBoost als Boosting-Klassifikator implementiert. Es verwendet Entscheidungsbaumstümpfe als schwache Klassifikatoren und passt die Gewichte von Trainingsbeispielen basierend auf ihren Klassifizierungsergebnissen an. Durch die Verstärkung dieser schwachen Klassifikatoren verbessert AdaBoost die Gesamtleistung. Beim Vergleich der Genauigkeit eines ungekürzten Entscheidungsbaums und eines Entscheidungsbaumstumpfes im Irisdatensatz erzielt AdaBoost mit Entscheidungsbaumstumpfen eine höhere Genauigkeit. Der Trainingsprozess beinhaltet die Aktualisierung der Stichprobengewichte, sodass es keine Parallelisierungsoption wie beim Absacken gibt. AdaBoost in scikit-learn bietet eine effektive Möglichkeit, schwache Klassifikatoren zu stärken und bessere Klassifizierungsergebnisse zu erzielen.

Als Nächstes befassen wir uns mit dem Gradient Boosting, einer weiteren beliebten Variante des Boostings. Gradient Boosting baut auf den Konzepten von AdaBoost auf, führt jedoch zusätzliche Verbesserungen ein.

Gradient Boosting ist eine beliebte Variante des Boosting-Algorithmus, der darauf abzielt, die Leistung schwacher Klassifikatoren durch iterative Verbesserung ihrer Schwächen weiter zu verbessern. Es basiert auf dem Konzept des Gradientenabstiegs, das häufig bei Optimierungsproblemen verwendet wird. Bei der Gradientenverstärkung werden die schwachen Klassifikatoren nacheinander trainiert und kombiniert, um einen starken Klassifikator zu erstellen.

Die Grundidee hinter der Gradientenverstärkung besteht darin, schwache Klassifikatoren iterativ zu trainieren und dann die Gewichte der Trainingsbeispiele basierend auf den Fehlern des Ensembles von Klassifikatoren anzupassen. Diese Anpassung erfolgt durch die Berechnung der Gradienten der Verlustfunktion in Bezug auf die Vorhersagen des Ensembles. Durch die Minimierung der Verlustfunktion verbessert das Ensemble schrittweise seine Leistung.

Um das Konzept zu veranschaulichen, betrachten wir ein einfaches Beispiel. Angenommen, wir haben ein binäres Klassifizierungsproblem, bei dem wir Datenpunkte entweder als positiv oder negativ klassifizieren möchten. Wir beginnen mit dem Training eines anfänglichen schwachen Klassifikators, beispielsweise eines Entscheidungsbaumstumpfes, anhand der Trainingsdaten. Dieser Klassifikator macht einige Fehler und wir berechnen die Fehler oder Residuen, indem wir seine Vorhersagen mit den wahren Bezeichnungen der Trainingsbeispiele vergleichen.

In der nächsten Iteration trainieren wir einen neuen schwachen Klassifikator, um die Residuen des vorherigen Klassifikators vorherzusagen. Dieser neue Klassifikator konzentriert sich auf die Korrektur der Fehler des vorherigen. Wir berechnen die Residuen, indem wir die vorhergesagten Werte von den wahren Residuen subtrahieren. Auch dieser neue Klassifikator macht einige Fehler und wir berechnen die Residuen.

Wir wiederholen diesen Vorgang, trainieren nacheinander neue schwache Klassifikatoren, um die Residuen des Ensembles vorherzusagen, und aktualisieren die Residuen basierend auf den Fehlern des aktuellen Ensembles. Jeder schwache Klassifikator wird trainiert, um die Verlustfunktion in Bezug auf die aktuellen Residuen zu minimieren. Das endgültige Ensemble wird durch die Kombination aller schwachen Klassifikatoren erhalten, wobei jeder Klassifikator basierend auf seiner Leistung eine gewichtete Stimme abgibt.

Die Gewichte der schwachen Klassifikatoren werden durch die Lernrate bestimmt, die den Beitrag jedes Klassifikators zur endgültigen Vorhersage steuert. Eine geringere Lernrate führt zu einer langsameren Konvergenz, kann aber zu einer besseren Generalisierung führen. Eine höhere Lernrate kann zu einer schnelleren Konvergenz führen, kann aber auch zu einer Überanpassung führen.

Gradient Boosting hat sich als leistungsstarke Technik für eine Vielzahl maschineller Lernaufgaben erwiesen, darunter Regressions-, Klassifizierungs- und Rankingprobleme. Es wurde erfolgreich in verschiedenen Bereichen eingesetzt, beispielsweise in der Computer Vision, der Verarbeitung natürlicher Sprache und der Bioinformatik.

In der Praxis stehen mehrere Implementierungen von Gradient Boosting zur Verfügung, darunter XGBoost, LightGBM und CatBoost, die effiziente und optimierte Algorithmen für Gradient Boosting bieten. Diese Implementierungen bieten zusätzliche Funktionen wie Parallelisierung, Regularisierungstechniken und den Umgang mit fehlenden Werten, um die Leistung und Flexibilität von Gradient-Boosting-Modellen weiter zu verbessern.

Damit sind die Einführung in das Boosting und der Überblick über den Adaboost-Algorithmus abgeschlossen. Im nächsten Video werden wir die Gradientenverstärkung detaillierter untersuchen, einschließlich der Konzepte des Gradientenabstiegs, der Verlustfunktionen und der spezifischen Algorithmen, die zur Verbesserung des Gradientenverstärkungsprozesses entwickelt wurden.

7.4 Boosting and AdaBoost (L07: Ensemble Methods)
7.4 Boosting and AdaBoost (L07: Ensemble Methods)
  • 2020.10.21
  • www.youtube.com
This video discusses the general concept behind boosting -- one of the model ensembling approaches in machine learning. Then, it goes over an early boosting ...
 

7.5 Gradient Boosting (L07: Ensemble-Methoden)


7.5 Gradient Boosting (L07: Ensemble-Methoden)

Das Konzept des Gradient Boosting wird als moderne Version des Boosting eingeführt, die Entscheidungsbäume und eine differenzierbare Verlustfunktion nutzt. Obwohl es AdaBoost ähnelt, unterscheidet sich das Gradient Boosting in der Art und Weise, wie Entscheidungsbäume angepasst werden. Bei der Gradientenverstärkung werden tiefere Bäume verwendet und den Trainingsbeispielen oder Klassifikatoren werden keine Gewichtungen zugewiesen. Die Schlüsselidee hinter der Gradientenverstärkung ist die Verwendung von Gradienten aus der Verlustfunktion zur Verbesserung des Modells, was zu einer besseren Leistung bei tabellarischen Datensätzen führt. Dieser Algorithmus erfreut sich insbesondere bei maschinellen Lernwettbewerben zunehmender Beliebtheit.

Im Kontext der Regression beginnt die Gradientenverstärkung mit der Erstellung eines Basisbaums. Beispielsweise besteht bei einem Hauspreisvorhersageproblem der anfängliche Basisbaum nur aus dem Wurzelknoten. Das Ziel wird auf der Grundlage des Durchschnittswerts an diesem Knoten vorhergesagt, in diesem Fall dem Durchschnittspreis der vier Häuser im Trainingssatz. Anschließend wird der nächste Baum basierend auf dem Vorhersagefehler des vorherigen Baums erstellt. Dieser vorhergesagte Fehler wird verwendet, um einen neuen Baum anzupassen. Die Bäume aus dem ersten und zweiten Schritt werden kombiniert und dieser Vorgang wird mehrmals wiederholt, wobei jeder nachfolgende Baum an die Fehler der vorherigen Bäume angepasst wird. Durch die Kombination des einfachen Entscheidungsbaums mit dem neuen, auf Residuen basierenden Entscheidungsbaum kann das Modell bessere und genauere Vorhersagen treffen.

Das Konzept des Gradient Boosting als additives Modell wird diskutiert, bei dem die Vorhersagen aller Bäume nacheinander durch Addition kombiniert werden. Außerdem wird die Lernrate oder Schrittgröße eingeführt, die das Gewicht oder den Beitrag jedes Baums zur endgültigen Vorhersage bestimmt. Die Gradientenverstärkung wird durchgeführt, indem der Prozess der Anpassung der Bäume an die Fehler der vorherigen Vorhersage wiederholt wird und das Modell schrittweise mit einer kleinen Schrittgröße aufgebaut wird, um eine Überanpassung zu verhindern. Dieser Prozess wird fortgesetzt, bis eine vorgegebene Anzahl von Bäumen, basierend auf den Hyperparametereinstellungen, fertiggestellt ist.

Der Referent erklärt den Gradient-Boosting-Algorithmus, der sowohl für Regressions- als auch für Klassifizierungsprobleme verwendet wird. Der Algorithmus umfasst die Initialisierung des Modells als Wurzelknoten, die anschließende Anpassung mehrerer Bäume und die Erstellung von Endknoten. An jedem Knoten werden Vorhersagen getroffen und der Verlust berechnet. Der Algorithmus kann wiederholt werden, bis die gewünschte Anzahl an Bäumen erreicht ist, mit dem übergeordneten Ziel, den Verlust zu minimieren.

Um das aktuelle Modell zu berechnen, werden das vorherige Modell und der neue Vorhersageschritt kombiniert und mit der Lernrate oder Schrittgröße gewichtet, um das aktualisierte Modell zu bestimmen. Dieser Vorgang wird wiederholt, bis die gewünschte Anzahl Bäume, bezeichnet als T, erreicht ist. Es werden Pseudo-Residuen berechnet, gefolgt von der Berechnung der Ableitung des Verlusts basierend auf den wahren Bezeichnungen und Vorhersagen des Modells der vorherigen Runde. Anschließend werden die Residuen berechnet und der Vorhersagewert bestimmt, der den Verlust am spezifischen Knoten minimiert. Das Modell wird entsprechend aktualisiert und dieser Vorgang wird wiederholt, bis T-Modelle erreicht sind. Obwohl differenzierbare Verlustfunktionen wie der negative Log-Likelihood-Verlust zur Klassifizierung verwendet werden können, liegt der Schwerpunkt in dieser Klasse auf dem Summenquadratfehler oder dem mittleren quadratischen Fehler.

Das Video erläutert die Schritte zur Gradientenverstärkung und ihre praktische Anwendung. Der erste Schritt besteht darin, den Verlust für alle Trainingsbeispiele an einem bestimmten Knoten zu minimieren, indem die Vorhersage gefunden wird, die den Ausdruck minimiert. Im zweiten Schritt wird eine Schleife für T-Bäume verwendet und die Vorhersage an jedem Blattknoten wird durch Mittelung der Beispiele an diesem Knoten berechnet. Die durchschnittliche Vorhersage wird mit dem vorherigen Modell kombiniert und die Vorhersagen für jeden Baum werden addiert. Die Lernrate wird verwendet, um die Pseudo-Residuen zu verringern und eine Überanpassung zu verhindern. Das Video geht auch kurz auf andere interessante Aspekte der in der Praxis eingesetzten Gradientenverstärkung ein.

Das Video verdeutlicht die potenziellen Nachteile von Boosting als sequentiellem Algorithmus, da dieser nicht mehrere Prozesse oder Rechenknoten vollständig nutzen kann. Es gibt jedoch eine Implementierung namens xgBoost, die mehrere Tricks enthält, um den Gradient-Boosting-Prozess effizienter zu gestalten. Tatsächlich nutzten 17 der 29 Challenge Winning Solutions, die zwischen 2015 und 2017 auf Kaggle veröffentlicht wurden, xgBoost. Acht dieser Lösungen verließen sich ausschließlich auf xgBoost zum Trainieren des Modells, während andere xgBoost mit neuronalen Netzen kombinierten oder Stacking nutzten, eine beliebte Ensemble-Voting-Technik. Das Video präsentiert zwei Tabellen aus einem Papier, die verschiedene Boosting-Implementierungen vergleichen und die einzigartigen Funktionen von xgBoost demonstrieren, die zu seiner Wirksamkeit beitragen.

Das Video bespricht Extra Boost, eine Variante des Gradienten-Boostings, die mehrere Vorteile bietet, wie etwa globales, Out-of-Core-Lernen, Sparsity-Bewusstsein und Parallelität. Extra Boost beinhaltet Näherungsmethoden, um die beste Aufteilung zu finden, indem zusammenfassende Statistiken verteilter Datenteilmengen verwendet werden. Das Video vergleicht die Leistung von Extra Boost mit anderen Gradient-Boosting-Implementierungen unter Verwendung der exakten Greedy-Methode und zeigt, dass Extra Boost die gleiche Leistung wie eine Implementierung erreicht, jedoch mit deutlich kürzerer Zeit pro Baum, was es für die Optimierung von Hyperparametern attraktiver macht.

Darüber hinaus erläutert das Video die verschiedenen Verbesserungen, die Extra Boost bietet, wie z. B. Regularisierungstechniken, Umgang mit fehlenden Features durch Imputation und Caching. Diese Verbesserungen tragen dazu bei, Überanpassungen zu reduzieren und die Gesamtleistung von Extra Boost zu verbessern. Darüber hinaus nutzt Extra Boost eine spalten- und zeilenbasierte Unterabtastung, die zufällig Teilmengen von Features und Trainingsbeispielen auswählt, wodurch sowohl die Recheneffizienz verbessert als auch Überanpassungen reduziert werden. Das Video schlägt vor, sich für eine detailliertere Erklärung seiner Techniken auf das Papier zu Extra Boost zu beziehen.

Das Video bietet einen Überblick über Extra Boost, eine neuere Implementierung von Gradienten-Boosting-Maschinen. Extra Boost zielt darauf ab, Überanpassungen zu reduzieren und die Vorhersagegenauigkeit zu verbessern. Das Video bespricht verschiedene Techniken zum Finden von Teilungen, einschließlich des exakten Greedy-Algorithmus und der histogrammbasierten Teilungssuche. Beim letztgenannten Ansatz wird ein kontinuierliches Merkmal in ein diskretes Histogramm zusammengefasst, wodurch die Trainingsgeschwindigkeit erhöht und der Speicherverbrauch reduziert werden kann. Das Video vergleicht außerdem Extra Boost mit Light GBM, einer weiteren Implementierung, die noch schneller und genauer ist. Light GBM nutzt histogrammbasierte Split-Finding und bietet im Vergleich zu Extra Boost eine geringere Speichernutzung und eine höhere Vorhersagegenauigkeit.

Das Video diskutiert die Implementierung von Gradienten-Boosting-Klassifikatoren in scikit-learn und stellt einen neuen Gradienten-Boosting-Klassifikator vor, der in einer aktuellen Version der Bibliothek hinzugefügt wurde. Der neue Klassifikator nutzt eine von LightGBM inspirierte histogrammbasierte Aufteilung und ist damit schneller als der vorherige Klassifikator. Das Video schlägt vor, beide Gradient-Boosting-Klassifikatoren zu verwenden und sie mit XGBoost zu vergleichen, um festzustellen, welcher die beste Leistung erbringt. Es werden Codebeispiele bereitgestellt, die als Vorlagen für Unterrichtsprojekte oder zur allgemeinen Verwendung dienen, einschließlich der Implementierung des Gradient Boosting-Klassifikators in scikit-learn und der Verwendung des neuen Histogramm-Gradienten-Boosting-Klassifikators.

Der Moderator diskutiert die Gradientenverstärkung mithilfe der XGBoost- und LightGBM-Bibliotheken. Die XGBoost-Bibliothek ist ähnlich, aber etwas aufwändiger als scikit-learn. Es erfordert die Konvertierung von NumPy-Arrays in das DMatrix-Format und anstelle der Fit-Methode wird die Train-Methode zum Trainieren des Modells verwendet. Vorhersagen können durch Aufrufen der Predict-Methode getroffen werden, um Klassenzugehörigkeitswahrscheinlichkeiten zu erhalten. Andererseits verfügt die Microsoft LightGBM-Bibliothek über eine API, die scikit-learn ähnelt. Vor der Anpassung der Gradient-Boosting-Maschine müssen Hyperparameter festgelegt werden, und die Score-Methode kann zur Berechnung der Genauigkeit verwendet werden. Im vorgestellten Fall weist das Modell eine Trainingsgenauigkeit von 100 % auf, ohne dass Hyperparameter angepasst werden müssen.

Das Video schließt mit der Betonung der Wirksamkeit von Gradient-Boosting-Techniken, insbesondere durch die Verwendung von Bibliotheken wie XGBoost und LightGBM. Diese Bibliotheken stellen leistungsstarke Tools für die Implementierung von Gradient-Boosting-Modellen bereit und bieten verschiedene Optimierungen zur Verbesserung der Leistung und Genauigkeit.

Darüber hinaus erkennt der Vortragende die Bedeutung der Hyperparameter-Abstimmung bei der Gradientenverstärkung an. Verschiedene Hyperparameter wie die Lernrate, die Anzahl der Bäume und die Tiefe der Bäume können die Leistung des Modells erheblich beeinflussen. Daher wird empfohlen, mit verschiedenen Hyperparameterkonfigurationen zu experimentieren, um die optimalen Einstellungen für ein bestimmtes Problem zu finden.

Um die Gradientenverstärkung weiter zu untersuchen, empfiehlt das Video, sich auf Forschungsarbeiten und Dokumentationen zu XGBoost, LightGBM und anderen relevanten Implementierungen zu beziehen. Diese Ressourcen bieten ausführliche Erläuterungen zu den Algorithmen, Techniken und erweiterten Funktionen der Gradientenverstärkung.

Zusammenfassend bietet das Video einen umfassenden Überblick über Gradient Boosting, seine Konzepte und seine praktischen Implementierungen mithilfe von Bibliotheken wie XGBoost und LightGBM. Es hebt die Vorteile der Gradientenverstärkung hervor, beispielsweise ihre Fähigkeit, komplexe Tabellendatensätze zu verarbeiten, ihre Wirksamkeit bei Wettbewerben und ihr Potenzial zur Verbesserung der Vorhersagegenauigkeit. Durch das Verständnis der Prinzipien und Techniken hinter der Gradientenverstärkung können Praktiker diesen leistungsstarken Algorithmus nutzen, um verschiedene Regressions- und Klassifizierungsprobleme anzugehen.

  • 00:00:00 Das Konzept des Gradient Boosting wird als moderne Version des Boostings eingeführt, die Entscheidungsbäume und eine differenzierbare Verlustfunktion verwendet. Ähnlich wie AdaBoost ist Gradient Boosting ein sequenzieller Prozess, der schwache Lernende zu einem starken Modell macht. Der Hauptunterschied zwischen den beiden liegt jedoch in der Art und Weise, wie Entscheidungsbäume angepasst werden, wobei bei der Gradientenverstärkung tiefere Bäume zum Einsatz kommen und keine Gewichte für Trainingsbeispiele oder Klassifikatoren verwendet werden. Die Schlüsselidee der Gradientenverstärkung ist die Verwendung von Gradienten aus der Verlustfunktion zur Verbesserung des Modells, was zu einer besseren Leistung bei tabellarischen Datensätzen führt und es zu einem beliebten Algorithmus für Wettbewerbe macht. Der Abschnitt bietet einen konzeptionellen Überblick über die Gradientenverstärkung in drei grundlegenden Schritten, beginnend mit der Erstellung eines Basisbaums.

  • 00:05:00 Wir lernen etwas über Gradient Boosting im Kontext der Regression. Zunächst beginnen wir mit einem Basisbaum, der nur aus dem Wurzelknoten besteht. In diesem Beispiel handelt es sich um ein Problem zur Vorhersage des Hauspreises. Wir sagen das Ziel basierend auf dem Durchschnitt an diesem Knoten voraus, der in diesem Fall der Durchschnitt der Preise der vier Häuser im Trainingssatz ist. Anschließend erstellen wir den nächsten Baum basierend auf dem Vorhersagefehler des vorherigen Baums und passen anhand dieses vorhergesagten Fehlers einen neuen Baum an. Wir kombinieren die Bäume aus Schritt eins und Schritt zwei und wiederholen den Vorgang mehrmals, um in aufeinanderfolgenden Runden Bäume an die Fehler anzupassen. Die Vorhersage ist immer eine Kombination der Vorhersage der vorherigen Bäume, und das gleiche Konzept gilt für die Klassifizierung unter Verwendung einer anderen Verlustfunktion.

  • 00:10:00 Der Dozent erklärt, wie man die Gradientenverstärkung nutzt, um bessere Vorhersagen zu treffen. Der Prozess umfasst den Aufbau eines Entscheidungsbaums, um eine erste Vorhersage zu treffen, die Berechnung von Pseudo-Residuen, um bessere Vorhersagen über die Fehler des vorherigen Baums zu treffen, und die Kombination der Bäume aus Schritt eins mit den Bäumen aus Schritt zwei. Der Dozent erklärt, wie dieser Prozess an einem einfachen Beispiel zu Immobilienpreisen angewendet werden kann, und zeigt, wie der Entscheidungsbaum aussehen könnte. Durch die Kombination des einfachen Entscheidungsbaums mit dem neuen, auf Residuen basierenden Entscheidungsbaum kann das Modell bessere und genauere Vorhersagen treffen.

  • 00:15:00 Das Konzept des Gradient Boosting als additives Modell wird diskutiert, bei dem wir die Vorhersagen aller Bäume nacheinander kombinieren, indem wir sie addieren. Die Methode beinhaltet auch einen Alpha-Wert, der als Lernrate oder Schrittgröße verwendet wird. Die Gradientenverstärkung wird durchgeführt, indem Schritt zwei mehrmals wiederholt und langsam mit einer kleinen Schrittgröße aufgebaut wird, um eine Überanpassung zu verhindern. Daher wird ein neuer Baum kontinuierlich an die Fehler der vorherigen Vorhersage angepasst, was eine weitere Spalte für die Vorhersage ergibt. Der Prozess wird fortgesetzt, bis eine festgelegte Anzahl von Bäumen basierend auf der Hyperparametereinstellung fertiggestellt wurde.

  • 00:20:00 Der Sprecher erklärt den Gradient-Boosting-Algorithmus, der sowohl für die Regression als auch für die Klassifizierung verwendet wird. Der Algorithmus folgt einem allgemeinen Verfahren, bei dem der Eingabedatensatz des Trainingsdatensatzes zusammen mit einer differenzierbaren Verlustfunktion verwendet wird. Im ersten Schritt wird das Modell als Wurzelknoten initialisiert, und im zweiten Schritt passt der Algorithmus mehrere Bäume an und erstellt Endknoten. Anschließend geht der Redner näher auf die Vorhersage an jedem Knoten und die Verlustberechnung ein. Der Algorithmus kann wiederholt werden, bis die gewünschte Anzahl an Bäumen erreicht ist. Das übergeordnete Ziel besteht darin, den Verlust zu minimieren.

  • 00:25:00 Der Sprecher erklärt, wie das aktuelle Modell berechnet wird, indem das vorherige Modell und der neue Vorhersageschritt kombiniert werden, gewichtet mit der Lernrate oder Schrittgröße, um das aktualisierte Modell zu bestimmen, bis es T-mal erreicht. Zuerst wird das Pseudoresiduum berechnet, dann wird die Ableitung des Verlusts basierend auf der wahren Bezeichnung und den Modellvorhersagen der vorherigen Runde berechnet. Danach werden die Residuen berechnet und der Vorhersagewert bestimmt, der den Verlust basierend auf dem spezifischen Knoten minimiert, und dann wird das Modell erneut aktualisiert. Dieser Vorgang wird wiederholt, bis T-Modelle erreicht sind. Obwohl der Redner differenzierbare Verlustfunktionen wie den negativen Log-Likelihood-Verlust erwähnt, die zur Klassifizierung verwendet werden können, konzentrieren sie sich in dieser Klasse auf den Summenquadratfehler oder den mittleren quadratischen Fehler.

  • 00:30:00 Der Referent erläutert die Schritte beim Gradient Boosting und wie es in der Praxis eingesetzt wird. Der erste Schritt besteht darin, den Verlust für alle Trainingsbeispiele an einem bestimmten Knoten zu minimieren, indem die Vorhersage gefunden wird, die den Ausdruck minimiert. Der zweite Schritt verwendet eine Schleife für T-Bäume und berechnet die Vorhersage an jedem Blattknoten, indem die Beispiele an jedem Knoten gemittelt werden. Der Durchschnittsvorhersage wird ein neuer Term hinzugefügt, der das vorherige Modell enthält. Die Lernrate für jeden Baum ist normalerweise gleich und die Vorhersagen für jeden Baum werden addiert. Das Ziel der Lernrate besteht darin, die Pseudo-Residuen zu verringern, um eine Überanpassung zu vermeiden. Abschließend geht der Referent noch kurz auf einige weitere interessante Aspekte des in der Praxis eingesetzten Gradient Boosting ein.

  • 00:35:00 Der Redner erörtert die potenziellen Nachteile von Boosting als sequentiellem Algorithmus, der seine Effizienz einschränken kann, da er nicht mehrere Prozesse oder Rechenknoten nutzen kann. Es gibt jedoch eine Boosting-Implementierung namens xgBoost, die mehrere Tricks verwendet, um den Gradient-Boosting-Prozess effizienter zu gestalten. Tatsächlich nutzten 17 der 29 Challenge Winning Solutions, die von 2015 bis 2017 bei Kaggle veröffentlicht wurden, xgBoost. Acht nutzten ausschließlich xgBoost zum Trainieren des Modells, während die meisten anderen xgBoost mit neuronalen Netzen kombinierten oder Stacking verwendeten, eine beliebte Ensemble-Voting-Technik. Anschließend stellt der Redner zwei Tabellen aus einem Papier vor, in denen verschiedene Boosting-Implementierungen verglichen werden. Dabei wird gezeigt, dass xgBoost über einzigartige Funktionen verfügt, die zu seiner Wirksamkeit beitragen.

  • 00:40:00 Der Redner diskutiert die Funktionen von Extra Boost, einer Variante des Gradienten-Boostings, die mehrere Vorteile bietet, wie etwa ungefähres globales Lernen, Out-of-Core-Lernen, Sparsity-Bewusstsein und Parallelität. Extra Boost implementiert Näherungsmethoden, um die beste Aufteilung basierend auf zusammenfassenden Statistiken von Teilmengen der verteilten Daten zu finden. Der Redner vergleicht die Leistung von Extra Boost und anderen Gradient-Boosting-Implementierungen mit der exakten Greedy-Methode und zeigt, dass Extra Boost die gleiche Leistung wie eine Implementierung aufweist, jedoch die Zeit pro Baum deutlich verkürzt, was es für die Optimierung von Hyperparametern attraktiver macht.

  • 00:45:00 Im Video geht es um Extra Boost, bei dem es sich im Wesentlichen um eine skalierbare Implementierung von Gradient Boosting handelt, die gut mit großen Datensätzen funktioniert. Das Video erklärt die verschiedenen Verbesserungen, die Extra Boost gegenüber normalen Gradient-Boosting-Techniken bietet, einschließlich Regularisierung, Imputationstechniken für fehlende Features und Caching. Diese Verbesserungen tragen dazu bei, Überanpassungen zu reduzieren und können die Gesamtleistung von Extra Boost verbessern. Darüber hinaus verwendet Extra Boost eine spalten- und zeilenbasierte Unterabtastung, um Teilmengen von Features und Trainingsbeispielen zufällig auszuwählen, was zur Reduzierung von Überanpassung und Recheneffizienz beitragen kann. Das Video empfiehlt die Lektüre des Artikels über Extra Boost für eine detailliertere Erklärung seiner Techniken.

  • 00:50:00 Der Redner gibt einen Überblick über Extra Boost, eine neuere Implementierung von Gradienten-Boosting-Maschinen, die Überanpassungen reduzieren und die Vorhersagegenauigkeit verbessern können. Der Referent erörtert die verschiedenen Techniken zum Finden von Teilungen, einschließlich des exakten Greedy-Algorithmus und der histogrammbasierten Teilungssuche. Beim letztgenannten Ansatz wird ein kontinuierliches Merkmal in ein diskretes Histogramm zusammengefasst, wodurch die Trainingsgeschwindigkeit verbessert und die Speichernutzung reduziert werden kann. Der Redner vergleicht Extra Boost auch mit Light GBM, einer weiteren Implementierung, die noch schneller und genauer ist. Light GBM verwendet ein histogrammbasiertes Split-Finding und bietet im Vergleich zu Extra Boost eine geringere Speichernutzung und eine höhere Vorhersagegenauigkeit.

  • 00:55:00 Der Redner diskutiert die Implementierung von Gradienten-Boosting-Klassifikatoren in Scikit-Learn und stellt einen neuen Gradienten-Boosting-Klassifikator vor, der in einer aktuellen Version von Scikit-Learn hinzugefügt wurde. Der neue Klassifikator verwendet eine von LightGBM inspirierte histogrammbasierte Aufteilung und ist damit schneller als der vorherige Klassifikator. Der Redner schlägt vor, beide Klassifikatoren zur Gradientenverstärkung zu verwenden und sie mit XGBoost zu vergleichen, um festzustellen, welcher die beste Leistung erbringt. Der Referent stellt den Zuschauern außerdem Codebeispiele zur Verfügung, die sie als Vorlagen für ihre Unterrichtsprojekte oder für den allgemeinen Gebrauch verwenden können. Die Beispiele umfassen die Implementierung des Gradient Boosting-Klassifikators in scikit-learn und die Verwendung des neuen Histogramm-Gradienten-Boosting-Klassifikators.

  • 01:00:00 Der Moderator diskutiert die Gradientenverstärkung mithilfe der XGBoost- und LightGBM-Bibliotheken. Die XGBoost-Bibliothek ist ähnlich, aber etwas aufwändiger als Scikit-Learn und erfordert die Konvertierung von NumPy-Arrays in ihr D-Matrix-Format. Der Moderator legt beliebige Parameter fest und verwendet Dot Train anstelle von Fit, um das Modell zu trainieren. Anschließend kann das Modell „predict“ aufrufen, um die Wahrscheinlichkeiten der Klassenzugehörigkeit vorherzusagen. Die Microsoft LightGBM-Bibliothek verfügt über eine API, die Scikit-Learn ähnelt und das Festlegen von Hyperparametern erfordert, bevor die Gradient-Boosting-Maschine angepasst und die Score-Methode zur Berechnung der Genauigkeit verwendet wird. In diesem Fall weist das Modell eine Trainingsgenauigkeit von 100 % auf, ohne dass Hyperparameter angepasst werden müssen.
7.5 Gradient Boosting (L07: Ensemble Methods)
7.5 Gradient Boosting (L07: Ensemble Methods)
  • 2020.10.27
  • www.youtube.com
In this video, we will take the concept of boosting a step further and talk about gradient boosting. Where AdaBoost uses weights for training examples to boo...
 

7.6 Random Forests (L07: Ensemble-Methoden)



7.6 Random Forests (L07: Ensemble-Methoden)

Großartig! Wir haben endlich den letzten Teil von Vorlesung 5 erreicht, der zufällig der interessanteste ist: heilige Lernpipelines. Sacred-Learn-Pipelines sind Objekte oder Klassen, die verschiedene Datenverarbeitungs- und Vorhersageschritte kombinieren, was sie in realen Anwendungen äußerst nützlich macht. Um Ihnen zu helfen, die Funktionsweise von Pipelines zu verstehen, werfen wir einen Blick auf ein Flussdiagramm. Ich werde jetzt nicht auf alle Feinheiten eingehen, aber wir werden kurz darauf noch einmal zurückkommen, nachdem ich ein Beispiel für eine Pipeline gegeben habe.

Im Wesentlichen kann man sich eine Pipeline als Schätzer- und Transformator-API vorstellen. Ähnlich wie ein Schätzer verfügt eine Pipeline über eine Anpassungsmethode, die auf den Trainingssatz angewendet werden kann. Intern werden mehrere Anpassungs- und Transformationsschritte durchgeführt, gefolgt von einem abschließenden Anpassungsschritt. Abhängig von den in der Pipeline enthaltenen Komponenten können Sie eine Abfolge von Vorgängen wie Datenskalierung (z. B. Standardisierung oder Min-Max-Skalierung) oder Dimensionsreduzierung definieren und anschließend einen Lernalgorithmus trainieren. Die Pipeline gibt dann ein Vorhersagemodell zurück, das für den Testsatz verwendet werden kann.

Wenn Sie während der Vorhersagephase die Vorhersagemethode für den Testsatz aufrufen, verwendet die Pipeline intern „transform“, um dieselbe Skalierung anzuwenden, die für den Trainingssatz durchgeführt wurde. Es wendet auch den letzten Vorhersageschritt an, z. B. die Rückgabe von Klassenbezeichnungen im Fall eines Klassifikators. Sehen wir uns ein einfaches Codebeispiel einer Pipeline an, um dieses Konzept zu veranschaulichen.

Hier erstelle ich eine Pipeline mit der Funktion make_pipeline aus dem Untermodul scikit-learn.dot.pipeline von Holy Learn. Obwohl es verschiedene Möglichkeiten gibt, Pipelines zu erstellen, ist diese Methode recht praktisch. In diesem Beispiel baue ich eine einfache Pipeline, die aus einem Klassifikator und einem Standardskalierer besteht. Der Standardskalierer standardisiert die Daten, wie im vorherigen Video erläutert, so, dass sie einen Mittelwert von Null und eine Einheitsvarianz aufweisen. Nachdem wir die Pipeline erstellt haben, können wir die Fit-Methode verwenden, um die Pipeline anhand der Trainingsdaten zu trainieren. Anschließend können wir die Vorhersagemethode verwenden, um Vorhersagen für den Testsatz zu treffen.

Lassen Sie uns nun tiefer in die Funktionsweise der Anpassungsmethode innerhalb der Pipeline eintauchen. Beim Aufruf von fit wird zunächst der Standardskalierer angewendet. Es lernt den Mittelwert und die Standardabweichung aus den Trainingsdaten und verwendet sie zur Skalierung der Daten. Dieser Prozess umfasst einen Anpassungs- und Transformationsschritt, bei dem der Standard-Skalierer die skalierten Daten berechnet und an den nächsten Schritt weitergibt. In diesem Fall ist der nächste Schritt der K-Klassifikator für den nächsten Nachbarn. Der K-Klassifikator für den nächsten Nachbarn empfängt die standardisierten Daten und kombiniert diese vier Schritte effektiv zu einem. Durch den Aufruf von „pipe.fit“ werden alle diese Schritte automatisch ausgeführt, was uns die Mühe erspart, sie einzeln auszuführen.

Während der Vorhersagephase findet der gleiche Prozess statt, außer dass es keinen Anpassungsschritt gibt. Stattdessen verwendet die Pipeline die Parameter des Trainingssatzes wieder, um die Testdaten zu skalieren und so die Konsistenz sicherzustellen. Anschließend werden die skalierten Testdaten zur Vorhersage an den Klassifikator übergeben.

Um diesen Prozess besser zu veranschaulichen, schauen wir uns das Flussdiagramm noch einmal an. Als Benutzer müssen Sie lediglich die Methoden „Fit“ und „Predict“ verwenden. Durch den Aufruf von fit ruft die Pipeline automatisch den Transformationsschritt auf. Es ist wichtig zu beachten, dass die Konvention in Pipelines darin besteht, den letzten Schritt als Klassifikator zu verwenden. Nur der letzte Schritt ruft „fit“ auf, während alle vorherigen Schritte „fit“ und „transform“ aufrufen. Folglich kann eine Pipeline über mehrere Transformatoren verfügen, wie etwa den Standard-Skalierer oder sogar Techniken zur Dimensionsreduktion wie die Hauptkomponentenanalyse (PCA). Es kann jedoch nur einen Klassifikator als letzten Schritt geben. Dieses Design stellt die Kompatibilität und Funktionalität der Pipeline sicher.

Um die Pipeline in Aktion zu veranschaulichen, untersuchen wir ein einfaches Modellauswahlszenario mit der Holdout-Methode. Bitte beachten Sie, dass dies nur eine grundlegende Demonstration ist und wir uns in späteren Vorlesungen mit fortgeschritteneren Modellauswahlmethoden wie der K-fachen Kreuzvalidierung befassen.

Bei der Holdout-Methode werden die Daten in zwei Teilmengen aufgeteilt: einen Trainingssatz und einen Validierungssatz. Der Trainingssatz wird zum Trainieren der Pipeline verwendet, während der Validierungssatz zur Bewertung ihrer Leistung und zur Auswahl des besten Modells verwendet wird.

Hier ist ein Beispiel dafür, wie Sie die Holdout-Methode mit einer Pipeline implementieren können:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Split the data into training and validation sets
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size= 0.2 , random_state= 42 )

# Create a pipeline
pipeline = make_pipeline(
    StandardScaler(),
    KNeighborsClassifier(n_neighbors= 3 )
)

# Train the pipeline
pipeline.fit(X_train, y_train)

# Make predictions on the validation set
y_pred = pipeline.predict(X_val)

# Evaluate the pipeline's accuracy
accuracy = accuracy_score(y_val, y_pred)
print(f "Validation accuracy: {accuracy}" )
In diesem Beispiel laden wir zunächst den Iris-Datensatz. Anschließend teilen wir die Daten mithilfe der Funktion train_test_split in einen Trainingssatz (X_train und y_train) und einen Validierungssatz (X_val und y_val) auf.

Als nächstes erstellen wir mit make_pipeline eine Pipeline und übergeben die gewünschten Schritte. In diesem Fall fügen wir einen StandardScaler zur Standardisierung der Daten und einen KNeighborsClassifier mit n_neighbors=3 als Klassifikator ein.

Wir trainieren die Pipeline, indem wir die Fit-Methode für die Trainingsdaten (X_train und y_train) aufrufen.

Nach dem Training verwenden wir die Pipeline, um Vorhersagen zum Validierungssatz (X_val) zu treffen, indem wir die Vorhersagemethode aufrufen.

Abschließend bewerten wir die Genauigkeit der Pipeline, indem wir die vorhergesagten Labels (y_pred) mit den wahren Labels (y_val) mithilfe der Funktion precision_score vergleichen.

Dies ist ein einfaches Beispiel für die Verwendung einer Pipeline mit der Holdout-Methode zur Modellauswahl. Bedenken Sie, dass es fortgeschrittenere Techniken wie die Kreuzvalidierung gibt, die zuverlässigere Bewertungen der Pipeline-Leistung ermöglichen können.

7.6 Random Forests (L07: Ensemble Methods)
7.6 Random Forests (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video discusses random forests, how random forests are related to bagging, and why random forests might perform better than bagging in practice.-------T...
 

7.7 Stacking (L07: Ensemble-Methoden)



7.7 Stacking (L07: Ensemble-Methoden)

Ja, es war eine lange, lange siebte Lektion. Und schließlich kommen wir zum letzten Video, in dem es um das Stapeln geht.

Im Laufe dieser Vorlesung haben wir viel behandelt. Wir haben Mehrheitsentscheidungen und Bagging besprochen, bei denen wir Entscheidungsbäume an Bootstrap-Stichproben anpassen. Wir haben uns auch mit Boosting befasst, bei dem wir Deep-Learning-Studierende auf der Grundlage der Fehler früherer Lernender anpassen, sowie mit Residuen und Gradient-Boosting. Darüber hinaus haben wir zufällige Wälder untersucht, die die Leistung gegenüber dem regulären Bagging verbessern, indem sie zufällige Feature-Teilmengen an jedem Knoten verwenden. Und jetzt werden wir endlich über das Stapeln sprechen.

Das Stapeln ähnelt der Mehrheitsabstimmung, jedoch mit einem Meta-Klassifikator, der die Vorhersagen anderer Klassifikatoren kombiniert, anstatt nur eine Mehrheitsabstimmung durchzuführen. Lassen Sie uns in die Details des Stapelns eintauchen.

Bevor wir fortfahren, möchte ich Sie an das Thema dieses Videos erinnern: Stapeln. Ich entschuldige mich für die unnötige Folie, aber konzentrieren wir uns auf die Grundlagen des Stapelalgorithmus, den David H. Wolpert in seinem 1992 veröffentlichten Artikel mit dem Titel „Stacked Generalization“ vorgeschlagen hat. Obwohl es sich um einen alten Artikel handelt, wird die Notation in einem neueren Buch I verwendet Wenn ich referenziere, ist es leichter zu verstehen. Beginnen wir also mit dieser Grundversion des Stapelns.

In diesem Algorithmus definieren wir die Eingabe und Ausgabe, die das Problem aufstellt. Wir arbeiten mit einem Trainingsdatensatz der Größe „n“. Jeder Merkmalsvektor, bezeichnet als „x_i“, ist ein „m“-dimensionaler Vektor. Ebenso werden die Klassenbezeichnungen, die den Trainingsbeispielen entsprechen, mit „y_i“ bezeichnet. Die Ausgabe dieses Algorithmus ist ein Ensemble-Klassifikator, den wir den zweiten Klassifikator nennen.

Konzentrieren wir uns nun auf die Schritte beim Stapeln. Schritt eins besteht darin, Klassifikatoren der ersten Ebene zu lernen. Wir verwenden eine Schleife von eins bis „t“, um diese Klassifikatoren anzupassen. Wir haben also eine Sammlung von Klassifikatoren, die als „h_1“ bis „h_t“ bezeichnet werden und auf die Eingabedaten „X“ und Klassenbezeichnungen „Y“ trainiert werden.

Im zweiten Schritt erstellen wir neue Datensätze aus dem Trainingssatz. Für jedes Trainingsbeispiel „x_i“ erstellen wir einen neuen Datensatz, der den geänderten Merkmalsvektor „x_i prime“ enthält. Der modifizierte Merkmalsvektor „x_i prime“ enthält die Vorhersagen der Klassifikatoren der ersten Ebene. Diese Vorhersagen können die Klassenbezeichnungen oder sogar die Klassenzugehörigkeitswahrscheinlichkeiten sein. Mithilfe dieser Vorhersagen können wir eine Mehrheitsabstimmung durchführen, ähnlich wie wir es zuvor besprochen haben. Allerdings hören wir hier nicht auf; Wir fahren mit Schritt drei fort.

In Schritt drei lernen wir, anstatt eine Mehrheitsentscheidung durchzuführen, einen Klassifikator der zweiten Ebene basierend auf den Vorhersagen der Klassifikatoren der ersten Ebene. „x_i prime“ stellt eine modifizierte Designmatrix dar, in der jede Spalte die Vorhersagen der Klassifikatoren „h_1“ bis „h_t“ enthält. Wir können einen Klassifikator an diese Vorhersagen anpassen und dabei entweder die Klassenbezeichnungen oder die Klassenzugehörigkeitswahrscheinlichkeiten berücksichtigen. Dieser Klassifikator der zweiten Ebene wird anhand dieser Vorhersagen trainiert.

Eine Schwäche des grundlegenden Stapelverfahrens ist seine Anfälligkeit für Überanpassung. Wenn einer der Klassifikatoren der ersten Ebene zu stark an den Trainingssatz angepasst ist, könnte sich dies negativ auf die Leistung des Meta-Klassifikators auswirken und zu einer allgemeinen Überanpassung des Systems führen. Um dieses Problem zu lösen, können wir den Stapelvorgang durch die Einbeziehung einer Kreuzvalidierung verbessern.

Kreuzvalidierung ist eine Technik, bei der wir den Datensatz in mehrere Teilmengen aufteilen und das Modell anhand verschiedener Kombinationen dieser Teilmengen trainieren. Dies trägt dazu bei, eine Überanpassung zu reduzieren und eine zuverlässigere Leistungsschätzung zu erhalten. Eine häufig verwendete Variante ist die k-fache Kreuzvalidierung, bei der der Datensatz in „k“ Teilmengen oder Falten aufgeteilt wird. Wir trainieren das Modell auf „k-1“-Falten und bewerten seine Leistung auf der verbleibenden Falte. Dieser Vorgang wird „k“-mal wiederholt, wobei jedes Mal eine andere Falte als Validierungssatz verwendet wird. Die Leistungsergebnisse jeder Faltung können dann gemittelt werden, um eine robustere Schätzung der Modellleistung zu erhalten.

Im Zusammenhang mit dem Stapeln können wir die Kreuzvalidierung verwenden, um das Training der Klassifikatoren der ersten Ebene zu verbessern. Anstatt sie auf dem gesamten Trainingssatz zu trainieren, teilen wir die Daten in „k“-Faltungen auf. Für jede Falte trainieren wir die Klassifikatoren der ersten Ebene für die verbleibenden „k-1“-Faltungen und verwenden sie, um Vorhersagen für die ausgelassene Falte zu treffen. Dieser Vorgang wird für jede Falte wiederholt, was zu Vorhersagen für den gesamten Trainingssatz führt.

Sobald wir die Vorhersagen der Klassifikatoren der ersten Ebene für den gesamten Trainingssatz haben, können wir mit Schritt drei des Stapelalgorithmus fortfahren, in dem wir den Klassifikator der zweiten Ebene anhand dieser Vorhersagen trainieren. Durch die Einbeziehung der Kreuzvalidierung stellen wir sicher, dass der Klassifikator der zweiten Ebene auf vielfältige und zuverlässige Vorhersagen der Klassifikatoren der ersten Ebene trainiert wird, wodurch das Risiko einer Überanpassung verringert wird.

Nachdem wir den Klassifikator der zweiten Ebene trainiert haben, können wir ihn verwenden, um Vorhersagen zu neuen, unsichtbaren Daten zu treffen. Die Vorhersagen werden normalerweise erhalten, indem die Eingabe durch die Klassifikatoren der ersten Ebene geleitet wird, um deren Vorhersagen zu erhalten, und diese Vorhersagen dann als Eingaben für den Klassifikator der zweiten Ebene verwendet werden. Die Ausgabe des Klassifikators der zweiten Ebene stellt die endgültige Vorhersage des Stapelensembles dar.

Stacking ist eine leistungsstarke Ensemble-Lerntechnik, die die Stärken mehrerer Klassifikatoren nutzt, um die Gesamtleistung zu verbessern. Durch die Kombination der Vorhersagen mehrerer Klassifikatoren kann das Stapeln verschiedene Aspekte der Daten erfassen und genauere Vorhersagen treffen. Es handelt sich um eine flexible und vielseitige Technik, die an verschiedene Problemdomänen und Klassifikatortypen angepasst werden kann.

Zusammenfassend lässt sich sagen, dass Stacking eine Ensemble-Lernmethode ist, die über die einfache Mehrheitsentscheidung hinausgeht. Es kombiniert die Vorhersagen mehrerer Klassifikatoren durch einen Meta-Klassifikator der zweiten Ebene und ermöglicht so eine anspruchsvollere Entscheidungsfindung. Durch die Einbeziehung der Kreuzvalidierung können wir die Robustheit und Generalisierungsfähigkeit des Stapelalgorithmus verbessern. Stacking ist ein wertvolles Werkzeug beim maschinellen Lernen und wird in verschiedenen Anwendungen häufig zur Steigerung der Vorhersageleistung eingesetzt.

7.7 Stacking (L07: Ensemble Methods)
7.7 Stacking (L07: Ensemble Methods)
  • 2020.10.28
  • www.youtube.com
This video explains Wolpert's stacking algorithm (stacked generalization) and shows how to use stacking classifiers in mlxtend and scikit-learn.-------This v...
 

8.1 Einführung in Über- und Unteranpassung (L08: Modellbewertung Teil 1)



8.1 Einführung in Über- und Unteranpassung (L08: Modellbewertung Teil 1)

Guten Tag allerseits! Ich hoffe, es geht euch allen gut. Ich habe heute einige aufregende Neuigkeiten mit Ihnen zu teilen, also lasst uns gleich loslegen.

Zunächst einmal habe ich die Bewertung Ihrer Projektvorschläge abgeschlossen und muss sagen, dass ich von den Ideen und Plänen, die ich gesehen habe, wirklich begeistert bin. Man merkt, dass sich jeder von Ihnen intensiv Gedanken über seine Projekte gemacht hat und eine klare Vision für die kommenden Wochen bis zur Projektpräsentation und -berichterstattung Mitte Dezember hat. Ich bin wirklich beeindruckt von der Detailtiefe und der Überlegung, die in Ihre Vorschläge eingeflossen sind.

Wenn jedoch einer von Ihnen das Bedürfnis nach zusätzlichem Feedback oder einer Klarstellung verspürt oder wenn Sie eine Anleitung zur Erkundung zusätzlicher Techniken wünschen, zögern Sie bitte nicht, sich an mich zu wenden. Gerne stehe ich Ihnen auf jede erdenkliche Weise mit Rat und Tat zur Seite. Schicken Sie mir einfach eine E-Mail oder vereinbaren Sie einen Termin und ich helfe Ihnen gerne weiter.

Kommen wir zu weiteren guten Nachrichten: Wir haben die Vorlesung über Ensemble-Methoden erfolgreich abgeschlossen, was bedeutet, dass es an der Zeit ist, sich einem neuen und spannenden Thema zu widmen. In der kommenden Vortragsreihe konzentrieren wir uns auf die Modellbewertung. Im Gegensatz zu den vorherigen Vorlesungen, in denen wir verschiedene Klassifikatoren und Algorithmen für maschinelles Lernen vorgestellt haben, werden wir dieses Mal untersuchen, wie die Leistung dieser Algorithmen fair bewertet werden kann.

In dieser neuen Reihe werden wir eine Reihe von Themen behandeln. Wir beginnen damit, die Konzepte der Unteranpassung und Überanpassung zu verstehen und wie sie mit der Bias- und Varianzzerlegung einer Verlustfunktion zusammenhängen. Anschließend werden wir uns mit Kreuzvalidierungsmethoden befassen, die es uns ermöglichen, Modelle effektiv zu vergleichen. Darüber hinaus werden wir Techniken zum Vergleich verschiedener Algorithmen für maschinelles Lernen diskutieren, um ihre Leistung bei bestimmten Datensätzen zu bestimmen. Es ist wichtig, zwischen Modellauswahl und Algorithmusauswahl zu unterscheiden, und wir werden diese Unterscheidung detaillierter untersuchen.

Beginnen wir ohne weitere Umschweife mit der Einführung in die Modellbewertung und tauchen tiefer in die Welt der Über- und Unteranpassung ein. In dieser Vorlesung (Vorlesung acht) werden wir die Bias- und Varianzzerlegung und ihre Beziehung zu Überanpassung und Unteranpassung diskutieren. Wir werden die Bias- und Varianzzerlegung sowohl des quadratischen Fehlerverlusts (relevant für die Regression) als auch des 01-Verlusts (relevant für die Klassifizierung) analysieren, um ein umfassendes Verständnis dieser Konzepte zu erlangen. Darüber hinaus werden wir verschiedene Arten von Verzerrungen beim maschinellen Lernen ansprechen, die über die in der Zerlegung behandelten statistischen Verzerrungen hinausgehen.

Bevor wir uns mit dem Vorlesungsmaterial befassen, gehen wir einen Schritt zurück und rekapitulieren kurz, wo wir uns im Kurs befinden. Wir haben die Einführung, rechnerische Aspekte wie Python, NumPy und scikit-learn sowie baumbasierte Methoden behandelt. Wir haben auch die Relevanz baumbasierter Methoden und die Beliebtheit von Ensemble-Methoden, insbesondere Boosting- und Random Forests, in der Branche diskutiert. Nun konzentrieren wir uns auf die Modellbewertung und werden verschiedene Unterthemen untersuchen, darunter Konfidenzintervalle, Kreuzvalidierung, Modellauswahl, Algorithmusauswahl und Leistungsmetriken. Gegen Ende werden wir auf Dimensionsreduktion und unbeaufsichtigtes Lernen eingehen.

Ich möchte Ihnen versichern, dass dieser Vortrag kürzer sein wird als der vorherige über Ensemble-Methoden, da er relativ prägnant ist. Dennoch werden wichtige Konzepte behandelt, die uns helfen werden, die Modellbewertung besser zu verstehen. Tauchen wir also in die sechs Unterthemen ein, aus denen sich die achte Vorlesung zusammensetzt: Überanpassung, Unteranpassung, Bias- und Varianzzerlegung, Zusammenhang mit Überanpassung und Unteranpassung, Bias- und Varianzzerlegung des 01-Verlusts und ein Überblick über verschiedene Arten von Bias beim maschinellen Lernen.

Während dieser Vorlesung ermutige ich Sie, über die Quizfragen hinaus innezuhalten und über die von mir gestellten Fragen nachzudenken. Es ist immer hilfreich, innezuhalten und die eigenen Gedanken zu formulieren, bevor man sich mit meiner Sicht auf das Thema auseinandersetzt. Wenn Sie sich auf diese Weise mit dem Material beschäftigen, wird Ihre Lernerfahrung verbessert.

  1. Überanpassung und Unteranpassung: Beim maschinellen Lernen tritt eine Überanpassung auf, wenn ein Modell bei den Trainingsdaten eine sehr gute Leistung erbringt, sich aber nicht auf neue, unbekannte Daten verallgemeinern lässt. Andererseits liegt eine Unteranpassung vor, wenn ein Modell zu einfach ist und die zugrunde liegenden Muster in den Daten nicht erfassen kann.

Eine Überanpassung kann durch zu komplexe Modelle verursacht werden, die im Verhältnis zur Menge der verfügbaren Trainingsdaten zu viele Parameter haben. Dies führt dazu, dass das Modell das Rauschen in den Trainingsdaten anpasst und nicht die tatsächlichen zugrunde liegenden Muster. Eine Unteranpassung hingegen tritt auf, wenn das Modell nicht komplex genug ist, um die Muster in den Daten zu erfassen.

  1. Bias- und Varianzzerlegung: Bias und Varianz sind zwei Fehlerquellen in Modellen für maschinelles Lernen. Der Bias misst, wie weit die Vorhersagen im Durchschnitt von den wahren Werten abweichen, wenn das Modell auf verschiedenen Trainingssätzen trainiert wird. Die Varianz hingegen misst, wie stark die Vorhersagen für eine bestimmte Eingabe variieren, wenn das Modell auf verschiedenen Trainingssätzen trainiert wird.

Bias und Varianz können mathematisch zerlegt werden. Der erwartete quadratische Fehler eines Modells kann in den quadratischen Bias, die Varianz und den irreduziblen Fehler zerlegt werden. Der quadratische Bias misst die durchschnittliche Differenz zwischen den Vorhersagen des Modells und den wahren Werten. Die Varianz misst die Variabilität der Modellvorhersagen für eine bestimmte Eingabe. Der irreduzible Fehler stellt das inhärente Rauschen in den Daten dar, das durch kein Modell reduziert werden kann.

  1. Zusammenhang mit Über- und Unteranpassung: Der Bias-Varianz-Kompromiss steht in engem Zusammenhang mit Über- und Unteranpassung. Überanpassung ist oft mit geringer Verzerrung und hoher Varianz verbunden. Das Modell passt sehr gut zu den Trainingsdaten, lässt sich jedoch nicht auf neue Daten verallgemeinern, da es zu empfindlich auf kleine Schwankungen im Trainingssatz reagiert.

Eine Unteranpassung hingegen ist mit einer hohen Verzerrung und einer geringen Varianz verbunden. Das Modell ist zu einfach und kann die zugrunde liegenden Muster in den Daten nicht erfassen, was zu einer schlechten Leistung sowohl bei den Trainings- als auch bei den Testdaten führt.

  1. Bias- und Varianzzerlegung des 01-Verlusts: Bisher haben wir die Bias- und Varianzzerlegung mithilfe des quadratischen Fehlerverlusts diskutiert, der häufig bei Regressionsproblemen verwendet wird. Bei Klassifizierungsproblemen verwenden wir jedoch normalerweise den 01-Verlust, der den Anteil falsch klassifizierter Instanzen misst.

Die Bias-Varianz-Zerlegung des 01-Verlusts ähnelt der des quadratischen Fehlerverlusts, erfordert jedoch komplexere Mathematik. Der quadratische Bias misst den erwarteten Unterschied in der Fehlklassifizierungsrate zwischen den Vorhersagen des Modells und den wahren Bezeichnungen. Die Varianz misst die Variabilität der Fehlklassifizierungsrate für eine bestimmte Eingabe.

  1. Überblick über verschiedene Arten von Verzerrungen beim maschinellen Lernen: Über die statistische Verzerrung hinaus, die in der Bias-Varianz-Zerlegung diskutiert wird, gibt es noch andere Arten von Verzerrungen beim maschinellen Lernen:
  • Stichprobenverzerrung: Tritt auf, wenn die Trainingsdaten nicht repräsentativ für die tatsächliche Grundgesamtheit sind oder eine verzerrte Verteilung aufweisen. Dies kann zu einem Modell führen, das bei den Trainingsdaten gute Leistungen erbringt, sich aber nicht auf die breitere Bevölkerung übertragen lässt.
  • Algorithmische Verzerrung: Bezieht sich auf die Verzerrungen, die durch die Algorithmen selbst entstehen können. Beispielsweise können bestimmte Algorithmen aufgrund der Trainingsdaten, denen sie ausgesetzt sind, oder der von ihnen berücksichtigten Funktionen anfälliger für Verzerrungen sein.
  • Kognitive Verzerrung: Damit sind Verzerrungen gemeint, die aus dem menschlichen Entscheidungsprozess resultieren können, wie z. B. subjektives Urteilsvermögen oder unbewusste Vorurteile bei der Datenkennzeichnung oder Merkmalsauswahl.

Das Verständnis dieser verschiedenen Arten von Vorurteilen ist entscheidend für die Entwicklung fairer und zuverlässiger Modelle für maschinelles Lernen.

Damit sind die Hauptthemen der achten Vorlesung abgeschlossen. Wie Sie sehen, sind Überanpassung, Unteranpassung, Verzerrung und Varianz miteinander verbundene Konzepte, die bei der Modellbewertung eine entscheidende Rolle spielen. Es ist wichtig, ein Gleichgewicht zwischen Komplexität und Generalisierbarkeit zu finden, um eine Über- oder Unteranpassung Ihrer Modelle zu vermeiden. Darüber hinaus kann die Kenntnis verschiedener Arten von Vorurteilen dazu beitragen, Fairness und ethische Überlegungen beim maschinellen Lernen anzugehen.

8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
8.1 Intro to overfitting and underfitting (L08: Model Evaluation Part 1)
  • 2020.11.03
  • www.youtube.com
This video gives a brief overview of the topics to be covered in the model evaluation lectures. It will then start by giving a brief introduction to overfitt...
 

8.2 Intuition hinter Bias und Varianz (L08: Modellbewertung Teil 1)



8.2 Intuition hinter Bias und Varianz (L08: Modellbewertung Teil 1)

Hallo an alle! Ich hoffe dir gehts gut. Ich habe einige aufregende Neuigkeiten, die ich mit Ihnen allen teilen möchte. Zunächst habe ich die Aufgabe der Benotung Ihrer Projektvorschläge abgeschlossen. Lassen Sie mich meine Freude darüber zum Ausdruck bringen, all Ihre brillanten Ideen und Pläne für den Rest des Semesters zu lesen. Es ist wirklich beeindruckend zu sehen, dass jeder von Ihnen einen klar definierten Fahrplan für die kommenden Wochen hat, der zu den Projektpräsentationen und -berichten führt.

Wenn einer von Ihnen das Bedürfnis nach zusätzlichem Feedback verspürt oder eine Klarstellung zu irgendeinem Aspekt benötigt, zögern Sie nicht, mich per E-Mail oder auf andere Weise zu kontaktieren. Gerne gebe ich Ihnen weitere Anleitungen und Hinweise auf zusätzliche Techniken, die für Ihre Projekte relevant sein könnten.

Kommen wir nun zur nächsten guten Nachricht. Wir haben die Vorlesung über Ensemble-Methoden erfolgreich abgeschlossen und es ist Zeit, in ein neues und spannendes Thema einzutauchen. In der kommenden Vortragsreihe beschäftigen wir uns mit dem Thema Modellevaluation. Im Gegensatz zu den vorherigen Vorlesungen, in denen wir verschiedene Klassifikatoren und Algorithmen für maschinelles Lernen vorgestellt haben, konzentrieren wir uns dieses Mal auf die faire Bewertung dieser Algorithmen.

Die Vorträge zur Modellevaluation werden mehrere Aspekte abdecken. Wir beginnen damit, die Konzepte der Unteranpassung und Überanpassung und ihre Beziehung zur Bias- und Varianzzerlegung in einer Verlustfunktion zu verstehen. Anschließend werden wir Kreuzvalidierungsmethoden untersuchen, die es uns ermöglichen, Modelle effektiv zu vergleichen. Später werden wir Techniken zum Vergleich verschiedener Algorithmen für maschinelles Lernen und deren Leistung bei bestimmten Datensätzen besprechen.

Es ist wichtig zu beachten, dass auch die Modellauswahl, bei der es um die Auswahl eines gut angepassten Algorithmus geht, ausführlicher besprochen wird. Wir werden untersuchen, wie es sich von der Modellbewertung unterscheidet. Beginnen wir unsere Reise also mit einer Einführung in die Modellbewertung und bauen von dort aus unser Wissen weiter aus.

Bevor wir uns mit dem neuen Thema befassen, nehmen wir uns einen Moment Zeit, um unsere Fortschritte in diesem Kurs zusammenzufassen. Wir begannen mit einer Einführung und behandelten wichtige rechnerische Aspekte wie Python, NumPy und Scikit-Learn. Wir haben auch baumbasierte Methoden untersucht, was einige interessante Diskussionen über ihre Relevanz in der Branche ausgelöst hat.

Da wir nun in die Modellbewertungsphase eintreten, werden wir mehrere Unterthemen im Zusammenhang mit Unter- und Überanpassung untersuchen. In dieser speziellen Vorlesung (Vorlesung Acht) konzentrieren wir uns auf die Bias- und Varianzzerlegung und ihren Zusammenhang mit Über- und Unteranpassung. Wir werden untersuchen, wie sich die Bias- und Varianzkomponenten auf die Generalisierungsleistung eines Modells auswirken.

Darüber hinaus werden wir die Bias- und Varianzzerlegung des 0-1-Verlusts untersuchen, die für Klassifizierungsprobleme relevanter ist. Diese Analyse wird uns ein tieferes Verständnis von Überanpassung und Unteranpassung im Kontext von Klassifizierungsaufgaben vermitteln.

Zum Abschluss dieser Vorlesung werden wir kurz auf verschiedene Arten von Verzerrungen beim maschinellen Lernen eingehen, die über die zuvor diskutierten statistischen Verzerrungen hinausgehen.

Wenden wir uns nun den Hauptkonzepten der Über- und Unteranpassung zu. Beim maschinellen Lernen besteht unser oberstes Ziel darin, Modelle (Regression oder Klassifizierung) zu entwickeln, die eine gute Generalisierungsleistung aufweisen. Dies bedeutet, dass die Modelle bei unsichtbaren Daten, die normalerweise aus dem Testsatz stammen, eine gute Leistung erbringen sollten. Während wir auch die Leistung des Testsatzes berücksichtigen, dient sie als Schätzung der Generalisierungsleistung für nicht sichtbare Daten.

Wenn das Modell nicht angepasst oder trainiert wird, gehen wir davon aus, dass der Trainingsfehler dem Testfehler ähnelt. Wenn wir das Modell jedoch an den Trainingssatz anpassen, stellen wir häufig fest, dass der Trainingsfehler geringer ist als der Testfehler. Dies ist auf eine Überanpassung zurückzuführen, bei der das Modell zu eng an die Trainingsdaten angepasst wird, einschließlich Rauschen, was zu einer optimistischen Leistungsschätzung führt.

Umgekehrt liegt eine Unteranpassung vor, wenn das Modell die zugrunde liegenden Muster in den Daten nicht erfassen kann, was zu hohen Trainings- und Testfehlern führt. In diesem Fall fehlt das Modell.

ausreichende Komplexität, um die wahre Beziehung zwischen den Merkmalen und der Zielvariablen darzustellen.

Um Überanpassung und Unteranpassung besser zu verstehen, betrachten wir den Kompromiss zwischen Bias und Varianz. Bias bezieht sich auf den Fehler, der durch die Approximation eines realen Problems mit einem vereinfachten Modell entsteht. Ein Modell mit hoher Verzerrung neigt dazu, die zugrunde liegenden Muster in den Daten zu stark zu vereinfachen, was zu einer Unteranpassung führen kann. Andererseits bezieht sich Varianz auf den Fehler, der durch die Empfindlichkeit des Modells gegenüber Schwankungen in den Trainingsdaten entsteht. Ein Modell mit hoher Varianz erfasst Rauschen und zufällige Variationen in den Trainingsdaten, was zu einer Überanpassung führt.

Der Kompromiss zwischen Bias und Varianz lässt sich veranschaulichen, indem man den erwarteten Testfehler in drei Komponenten zerlegt: den irreduziblen Fehler, den Bias-Term und den Varianz-Term. Der irreduzible Fehler stellt das inhärente Rauschen in den Daten dar, das durch kein Modell reduziert werden kann. Der Bias-Term misst den Fehler, der durch die Approximation eines realen Problems mit einem vereinfachten Modell entsteht, und der Varianz-Term misst den Fehler, der durch die Empfindlichkeit des Modells gegenüber Schwankungen in den Trainingsdaten verursacht wird.

Mathematisch können wir den erwarteten Testfehler wie folgt ausdrücken:

Erwarteter Testfehler = Irreduzibler Fehler + Bias^2 + Varianz

Idealerweise möchten wir ein Gleichgewicht zwischen Bias und Varianz finden, das den erwarteten Testfehler minimiert. Allerdings führt die Reduzierung einer Komponente häufig zu einer Erhöhung der anderen. Dieser Kompromiss ist bei der Modellauswahl und -bewertung von entscheidender Bedeutung.

Im Zusammenhang mit Klassifizierungsproblemen können wir auch die Bias-Varianz-Zerlegung des 0-1-Verlusts untersuchen, einer häufigen Verlustfunktion, die bei Klassifizierungsaufgaben verwendet wird. Der 0-1-Verlust misst den Fehler als Anteil falsch klassifizierter Instanzen. Die Bias-Varianz-Zerlegung des 0-1-Verlusts liefert Einblicke in die Fehlerquellen in Klassifizierungsmodellen.

Über die statistische Verzerrung hinaus gibt es noch andere Arten von Verzerrungen, die sich auf Modelle des maschinellen Lernens auswirken können. Diese Verzerrungen können aus verschiedenen Quellen stammen, einschließlich Stichprobenverzerrungen, Messverzerrungen und algorithmischen Verzerrungen. Das Verständnis dieser Vorurteile ist für den Aufbau fairer und zuverlässiger Systeme für maschinelles Lernen von entscheidender Bedeutung.

In der nächsten Vorlesung werden wir uns eingehender mit der Kreuzvalidierung befassen, einer leistungsstarken Technik zur Schätzung der Generalisierungsleistung eines Modells. Durch die Kreuzvalidierung können wir beurteilen, wie gut ein Modell bei unbekannten Daten funktioniert, indem wir den Trainings- und Testprozess für verschiedene Teilmengen der Daten simulieren. Wir werden verschiedene Arten von Kreuzvalidierungsmethoden untersuchen, wie z. B. die k-fache Kreuzvalidierung und die geschichtete Kreuzvalidierung, und ihre Vorteile und Einschränkungen diskutieren.

Das ist alles für den heutigen Vortrag. Ich ermutige Sie, das behandelte Material durchzugehen und sich auf etwaige Fragen für unsere nächste Sitzung vorzubereiten. Vielen Dank und einen schönen Tag!

8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
8.2 Intuition behind bias and variance (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
This video provides some intuition behind the terms bias and variance in the context of bias-variance decomposition and machine learning.-------This video is...
 

8.3 Bias-Varianz-Zerlegung des quadratischen Fehlers (L08: Modellbewertung Teil 1)



8.3 Bias-Varianz-Zerlegung des quadratischen Fehlers (L08: Modellbewertung Teil 1)

In der vorherigen Vorlesung haben wir einen Einblick in Bias und Varianz gewonnen und kurz auf die Bias-Varianz-Zerlegung einer Verlustfunktion eingegangen. In dieser Vorlesung werden wir uns nun eingehender mit der Bias-Varianz-Zerlegung befassen, indem wir uns auf den quadratischen Fehlerverlust konzentrieren. Wenn wir mit dem quadratischen Fehlerverlust beginnen, wird es einfacher und intuitiver, bevor wir seinen Zusammenhang mit Über- und Unteranpassung untersuchen. Darüber hinaus werden wir kurz auf die Bias-Varianz-Zerlegung des 0-1-Verlusts eingehen, ein kontroverseres Thema, dem sich neuere Arbeiten widmen. Wir werden jedoch zunächst den Fall des quadratischen Fehlers untersuchen, da er ein einfacheres Verständnis ermöglicht.

Um es kurz zusammenzufassen: Voreingenommenheit und Varianz wurden im vorherigen Video ausführlicher behandelt, es ist jedoch von Vorteil, sich einen Moment Zeit zu nehmen, um die Situation noch einmal Revue passieren zu lassen. Wir betrachten den Punktschätzer abzüglich der Vorhersage, die das vorhergesagte Ziel für ein bestimmtes Modell und einen bestimmten Trainingssatz darstellt. Die Erwartung wird über verschiedene Trainingssätze übernommen, die aus derselben Verteilung oder Population stammen. Diese Erwartung stellt die durchschnittliche Vorhersage für einen bestimmten Datenpunkt im Testsatz dar.

Der Bias misst, wie weit die durchschnittliche Vorhersage vom wahren Zielwert entfernt ist, während die Varianz den Betrag quantifiziert, um den jede einzelne Vorhersage von der durchschnittlichen Vorhersage abweicht. Der Varianzterm wird quadriert, um das Vorzeichen außer Acht zu lassen und sich auf die Gesamtstreuung der Vorhersagen um den Durchschnitt zu konzentrieren.

Der quadratische Fehlerverlust kann als (Theta – Theta Hat)^2 dargestellt werden, wobei Theta der wahre Wert und Theta Hat der vorhergesagte Wert für einen bestimmten Datenpunkt ist. In dieser Vorlesung konzentrieren wir uns auf die Bias-Varianz-Zerlegung des quadratischen Fehlerverlusts, wobei wir nur die Bias- und Varianzterme berücksichtigen und den Rauschterm ignorieren.

Um mit der Bias-Varianz-Zerlegung fortzufahren, führen wir einige Notationen und Einstellungen für das Szenario ein. Wir betrachten eine wahre Funktion, die die Beschriftungen (y) generiert, und wir haben eine Hypothese (h) als unser Modell, die die wahre datengenerierende Funktion annähert. Wir verwenden y hat, um eine Vorhersage darzustellen. Mit diesen Begriffen können wir den quadratischen Fehlerverlust als (y - y hat)^2 ausdrücken. Um Verwechslungen mit dem Erwartungssymbol (E) zu vermeiden, bezeichnen wir den quadratischen Fehler als (s).

Zerlegen wir nun den quadratischen Fehler in Bias- und Varianzkomponenten. Um dies zu erreichen, verwenden wir einen mathematischen Trick, bei dem wir den Erwartungswert der Vorhersage einfügen und subtrahieren. Dadurch erweitern wir den quadratischen Ausdruck und zerlegen ihn in drei Terme: (y^2, -2yy hat, y hat^2).

Als nächstes wenden wir die Erwartung auf beide Seiten der Gleichung an. Die Anwendung der Erwartung auf den ersten Term ergibt y^2, das unverändert bleibt, da y eine Konstante ist. Der Erwartungswert des zweiten Termes, -2yy hat, ist Null, da wir denselben Wert (Erwartungswert von y hat) wiederholt von sich selbst subtrahieren. Was den dritten Term betrifft, stellt die Erwartung von y hat^2 den Durchschnittswert der Vorhersagen dar.

Nachdem wir die Erwartung angewendet haben, bleiben uns zwei Begriffe übrig: der quadratische Bias und die Varianz. Der quadratische Bias ist (y – E[y hat])^2 und misst die Differenz zwischen der wahren Bezeichnung und der durchschnittlichen Vorhersage. Die Varianz beträgt E[(y hat - E[y hat])^2] und quantifiziert die durchschnittliche quadratische Abweichung einzelner Vorhersagen von der durchschnittlichen Vorhersage.

Um die Eliminierung des Termes -2yy bei der Anwendung der Erwartung zu demonstrieren, schlüsseln wir die Schritte auf. Die Anwendung der Erwartung auf -2yy hat ergibt 2E[yy hat]. Wenn wir den Ausdruck weiter ausbauen, stellen wir fest, dass der Erwartungswert von yy hat gleich E[y]E[y hat] ist, da y eine Konstante ist. Folglich vereinfacht sich die Erwartung von -2yy hat zu -2E[y]E[y hat].

Subtrahiert man diesen Term von den quadrierten Fehlern, erhält man:

s = y^2 - 2yy hat + y hat^2 = y^2 - 2yy hat + y hat^2 - 2E[y]E[y hat] + 2E[y]E[y hat]

Lassen Sie uns nun die Begriffe neu ordnen:

s = (y - E[y hat])^2 + 2(E[y]E[y hat] - yy hat)

Wir können den Ausdruck weiter vereinfachen, indem wir erkennen, dass E[y]E[y hat] ein konstanter Wert ist, der als c bezeichnet wird. Deshalb haben wir:

s = (y - E[y hat])^2 + 2(c - yy hat)

Konzentrieren wir uns abschließend auf den zweiten Term, 2(c - yy hat). Dieser Begriff lässt sich wie folgt zerlegen:

2(c - yy Hut) = 2c - 2yy Hut

Der erste Term, 2c, ist eine Konstante und hängt nicht von der Vorhersage y hat ab. Der zweite Term, -2yy hat, repräsentiert die Interaktion zwischen der wahren Bezeichnung y und der Vorhersage y hat.

Nun können wir die Bias-Varianz-Zerlegung des quadratischen Fehlerverlusts wie folgt zusammenfassen:

s = (y - E[y hat])^2 + 2c - 2yy hat

Der erste Term, (y - E[y hat])^2, entspricht dem quadratischen Bias. Es misst die Diskrepanz zwischen der wahren Bezeichnung y und der durchschnittlichen Vorhersage E[y hat].

Der zweite Term, 2c, ist eine Konstante und stellt den quadratischen Bias dar. Es wird durch die Wahl des Vorhersage-Y-Hutes nicht beeinflusst.

Der dritte Term, -2yy hat, stellt die Varianz dar. Es erfasst die Variabilität der einzelnen Vorhersagen um ihren durchschnittlichen E[y hat]. Sie wird direkt durch die Wahl des Vorhersage-Y-Hutes beeinflusst.

Daher können wir den Schluss ziehen, dass der quadratische Fehlerverlust in einen quadratischen Bias-Term, einen konstanten quadrierten Bias-Term und einen Varianz-Term zerlegt werden kann.

Das Verständnis der Bias-Varianz-Zerlegung hilft uns, Einblicke in das Verhalten eines Modells zu gewinnen. Eine hohe Verzerrung weist auf eine Unteranpassung hin, bei der das Modell nicht in der Lage ist, die zugrunde liegenden Muster in den Daten zu erfassen. Eine hohe Varianz weist auf eine Überanpassung hin, bei der das Modell zu empfindlich auf die Trainingsdaten reagiert und nicht gut auf nicht sichtbare Daten generalisieren kann.

Durch die Analyse der Bias- und Varianzkomponenten können wir fundierte Entscheidungen über die Modellkomplexität, Regularisierungstechniken und Datenerfassungsstrategien treffen, um die Leistung unserer Modelle zu optimieren.

In der nächsten Vorlesung werden wir die Bias-Varianz-Zerlegung auf den 0-1-Verlust erweitern und ihre Auswirkungen diskutieren.

8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
8.3 Bias-Variance Decomposition of the Squared Error (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
In this video, we decompose the squared error loss into its bias and variance components.-------This video is part of my Introduction of Machine Learning cou...
 

8.4 Bias und Varianz vs. Überanpassung und Unteranpassung (L08: Modellbewertung Teil 1)



8.4 Bias und Varianz vs. Überanpassung und Unteranpassung (L08: Modellbewertung Teil 1)

Mein Ziel ist es, mit diesem Video einen Rekord für das kürzeste Video in diesem Kurs aufzustellen. Ich möchte es prägnant halten und das Thema nicht zu lange in die Länge ziehen. Da ich nur zwei Folien habe, wird es nicht viel Zeit in Anspruch nehmen. In diesem Video untersuchen wir die Beziehung zwischen der Bias-Varianz-Zerlegung und den Konzepten der Unter- und Überanpassung.

Schauen wir uns zunächst die Grafik an, die weiter oben in dieser Vorlesung gezeigt wurde. Bitte beachten Sie, dass es sich hierbei um eine einfache Skizze handelt und nicht auf realen Zahlen basiert. In der Praxis kann die Beziehung zwischen diesen Begriffen beim Umgang mit realen Datensätzen verrauscht sein. Die Grafik zeigt den quadratischen Fehlerverlust im Verhältnis zur Kapazität des Modells, der sich auf seine Komplexität oder Fähigkeit zur Anpassung an die Trainingsdaten bezieht.

Die Kapazität bezieht sich darauf, wie gut das Modell zum Trainingssatz passen kann. Eine höhere Kapazität bedeutet, dass das Modell die Daten besser anpassen kann. Beispielsweise wird in parametrischen Modellen wie der Regression die Kapazität häufig durch die Anzahl der Parameter oder Terme bestimmt. Mit zunehmender Kapazität nimmt der Trainingsfehler ab, da ein komplexeres Modell die Trainingsdaten besser anpassen kann.

Allerdings ist ein geringer Trainingsfehler keine Garantie für eine gute Leistung bei neuen Daten. Es ist möglich, dass die Trainingsdaten durch eine zu enge Anpassung überpasst werden, was zu einem Anstieg des Fehlers bei neuen Daten, dem so genannten Generalisierungsfehler, führen kann. Der Generalisierungsfehler kann mithilfe eines unabhängigen Testsatzes geschätzt werden. Mit zunehmender Kapazität verbessert sich zunächst der Generalisierungsfehler bis zu einem gewissen Grad. Ab einem bestimmten Punkt nimmt der Fehler jedoch wieder zu, was auf eine Überanpassung hindeutet.

Die Lücke zwischen dem Trainingsfehler und dem Generalisierungsfehler stellt den Grad der Überanpassung dar. Mit zunehmender Kapazität des Modells vergrößert sich die Lücke, da das Modell die Daten zu genau anpasst, einschließlich Rauschen in den Daten. Der Grad der Überanpassung gibt an, inwieweit das Modell die Trainingsdaten überpasst und sich nicht gut auf neue Daten verallgemeinern lässt.

Lassen Sie uns diese Konzepte nun mit Voreingenommenheit und Varianz in Verbindung bringen. In der Grafik habe ich die Begriffe Bias und Varianz rot hinzugefügt. Mit zunehmender Kapazität des Modells nimmt auch seine Varianz zu. Dies kann bei tiefen Entscheidungsbäumen im Vergleich zu kurzen Entscheidungsbäumen beobachtet werden. Modelle mit höherer Varianz sind anfälliger für eine Überanpassung. Je höher die Varianz, desto größer ist der Grad der Überanpassung, der durch die Lücke zwischen dem Trainingsfehler und dem Generalisierungsfehler dargestellt wird.

Umgekehrt nimmt der Bias mit zunehmender Varianz ab. Ein komplexeres Modell weist normalerweise eine geringere Tendenz auf. In der Grafik sieht es vielleicht so aus, als würde die Tendenz nach unten und dann wieder nach oben zeigen, aber das ist nur das Ergebnis einer schlechten Zeichnung. In Wirklichkeit nimmt die Verzerrung asymptotisch ab, wenn die Varianz zunimmt, wenn die Kapazität des Modells zunimmt.

Wenn das Modell hingegen über eine geringe Kapazität verfügt (z. B. ein einfaches Modell), passt es nicht ausreichend zu den Daten, was zu einer schlechten Leistung sowohl bei den Trainings- als auch bei den Testsätzen führt. Damit ist eine hohe Voreingenommenheit verbunden. Eine Unteranpassung tritt auf, wenn das Modell zu einfach ist, um die zugrunde liegenden Muster in den Daten zu erfassen.

Zusammenfassend lässt sich sagen, dass eine hohe Verzerrung mit einer Unteranpassung korreliert, während eine hohe Varianz mit einer Überanpassung korreliert. Im nächsten Video werden wir kurz die Bias-Varianz-Zerlegung des 0-1-Verlusts untersuchen, die für Klassifizierungsaufgaben relevanter ist. Obwohl es weniger intuitiv ist als die Zerlegung des quadratischen Fehlerverlusts, bietet es Einblicke in die Bias- und Varianzkomponenten im Klassifizierungskontext.

8.4 Bias and Variance vs Overfitting and Underfitting (L08: Model Evaluation Part 1)
8.4 Bias and Variance vs Overfitting and Underfitting (L08: Model Evaluation Part 1)
  • 2020.11.04
  • www.youtube.com
This brief video discusses the connection between bias & variance and overfitting & underfitting.-------This video is part of my Introduction of Machine Lear...
 

8.5 Bias-Varianz-Zerlegung des 0/1-Verlusts (L08: Modellbewertung Teil 1)


8.5 Bias-Varianz-Zerlegung des 0/1-Verlusts (L08: Modellbewertung Teil 1)

In dieser Diskussion haben wir uns mit der Bias-Varianz-Zerlegung des quadratischen Fehlerverlusts und seiner Beziehung zu Über- und Unteranpassung befasst. Nun konzentrieren wir uns auf die Bias-Varianz-Zerlegung des 0/1-Verlusts, die aufgrund ihrer stückweisen Natur etwas komplexer ist. Der 0/1-Verlust weist einen Wert von 0 zu, wenn die wahre Bezeichnung mit der vorhergesagten Bezeichnung übereinstimmt, andernfalls 1. Die Analyse dieser Verlustfunktion ist schwieriger, da es sich nicht um eine kontinuierliche Funktion handelt.

Um die Bias-Varianz-Zerlegung im Kontext des 0/1-Verlusts zu untersuchen, beziehen wir uns auf die Arbeit von Pedro Domingo und Common Dieterich. Pedro Domingos Artikel „The Unified Bias Variance Decomposition“ zielte darauf ab, verschiedene Bias-Varianz-Zerlegungen im Zusammenhang mit dem 0/1-Verlust zu vereinheitlichen. Mehrere Autoren haben unterschiedliche Zerlegungen vorgeschlagen, aber jede davon weist erhebliche Mängel auf.

In diesem Kurs konzentrieren wir uns hauptsächlich auf die Intuition hinter der Brücke zwischen der Bias-Varianz-Zerlegung und dem 0/1-Verlust. Wir werden kurz auf die kombinatorische Arbeit von 1995 und Pedro Domingos Erklärung dieser Arbeit eingehen. Für ein detaillierteres Verständnis können Sie auf die referenzierten Dokumente verweisen.

Beginnen wir mit einem erneuten Blick auf den quadratischen Fehlerverlust, den wir als quadrierte Differenz zwischen dem wahren Wert und dem vorhergesagten Wert definiert haben. Zuvor haben wir die Erwartung dieses Verlusts über verschiedene Trainingssätze hinweg untersucht und ihn in Bias- und Varianzterme zerlegt. Jetzt werden wir eine verallgemeinerte Notation einführen, die die Funktion L verwendet, um den Verlust darzustellen und den Erwartungswert dieser Funktion zu übernehmen.

Bei der Erörterung der Bias-Varianz-Zerlegung des quadratischen Fehlerverlusts haben wir ihn in Bias- und Varianzterme zerlegt. Der als Bias(Y) bezeichnete Bias-Term stellt die Differenz zwischen der wahren Bezeichnung (Y) und der durchschnittlichen Vorhersage (E[Y_hat]) dar. Der Varianzterm, bezeichnet als Var(Y_hat), misst die Variabilität von Vorhersagen um die durchschnittliche Vorhersage. Diese Begriffe erfassen, wie stark die Vorhersagen von der wahren Bezeichnung abweichen bzw. wie stark sie streuen.

Jetzt definieren wir einen neuen Begriff namens Hauptvorhersage. Im Fall des quadratischen Fehlerverlusts ist die Hauptvorhersage die durchschnittliche Vorhersage über verschiedene Trainingssätze hinweg. Wenn es jedoch um den 0/1-Verlust geht, wird die Hauptvorhersage durch die Verwendung des Vorhersagemodus, dh der häufigsten Vorhersage, erhalten. Diese Unterscheidung ist entscheidend für das Verständnis der Bias-Varianz-Zerlegung im Kontext der Klassifizierung.

Lassen Sie uns untersuchen, wie Bias und Varianz im Hinblick auf den 0/1-Verlust definiert werden können. Wir beziehen uns auf die bereinigte Version der vorherigen Folie. Auf der rechten Seite führen wir den Bias-Term ein. In den Arbeiten von Kong und Dieterich wird der Bias als 1 definiert, wenn die Hauptvorhersage (E[Y_hat]) nicht mit der wahren Bezeichnung (Y) übereinstimmt, andernfalls als 0. Diese Definition erfasst, ob die Hauptvorhersage mit der wahren Bezeichnung übereinstimmt oder nicht.

Konzentrieren wir uns als Nächstes auf den Fall, in dem die Verzerrung Null ist, was darauf hinweist, dass die Hauptvorhersage mit der wahren Bezeichnung übereinstimmt. In diesem Szenario entspricht der Verlust der Varianz. Per Definition stellt der Verlust die Wahrscheinlichkeit dar, dass die Vorhersage nicht mit der wahren Bezeichnung übereinstimmt. Somit können wir die Varianz als die Wahrscheinlichkeit interpretieren, dass die Vorhersage (Y_hat) nicht gleich der Hauptvorhersage (E[Y_hat]) ist. Diese Wahrscheinlichkeit spiegelt die Variabilität der Vorhersagen wider, wenn die Verzerrung Null ist.

Schauen wir uns nun den etwas komplizierteren Fall an, bei dem die Verzerrung Eins beträgt. Wir beginnen damit, den Verlust als Eins minus der Wahrscheinlichkeit, dass die Vorhersage mit der wahren Bezeichnung übereinstimmt, umzuschreiben. Dies entspricht eins minus der Genauigkeit. Wir werden zwei Aspekte berücksichtigen: wann Y nicht gleich der Hauptvorhersage ist und wann Y gleich der Hauptvorhersage ist.

Wenn Y nicht mit der Hauptvorhersage übereinstimmt, beträgt der Verlust eins, was auf eine Fehlklassifizierung hinweist. In diesem Fall trägt der Varianzterm nicht zum Verlust bei, da sich die Hauptvorhersage von der wahren Bezeichnung unterscheidet und die Variabilität der Vorhersagen irrelevant ist. Der gesamte Verlust kann dem Bias-Term zugeschrieben werden, der die Tatsache erfasst, dass die Hauptvorhersage nicht mit der wahren Bezeichnung übereinstimmt.

Wenn andererseits Y gleich der Hauptvorhersage ist, beträgt der Verlust eins minus der Wahrscheinlichkeit, dass alle anderen Vorhersagen von der Hauptvorhersage abweichen. Diese Wahrscheinlichkeit stellt die Variabilität der Vorhersagen dar, wenn die Verzerrung eins beträgt. Daher ist in diesem Fall der Varianzterm für den Verlust verantwortlich, der die Unsicherheit der Vorhersagen rund um die Hauptvorhersage widerspiegelt.

Zusammenfassend lässt sich sagen, dass bei der Bias-Varianz-Zerlegung des 0/1-Verlusts der Bias-Term den Fehlklassifizierungsfehler erfasst, wenn die Hauptvorhersage nicht mit der wahren Bezeichnung übereinstimmt. Der Varianzterm berücksichtigt die Variabilität der Vorhersagen, wenn die Hauptvorhersage mit der wahren Bezeichnung übereinstimmt.

Es ist wichtig zu beachten, dass die Bias-Varianz-Zerlegung für den 0/1-Verlust aufgrund der diskreten Natur der Verlustfunktion im Vergleich zum quadratischen Fehlerverlust nuancierter und komplexer ist. Die Bias- und Varianzterme werden auf der Grundlage des Konzepts der Hauptvorhersage definiert und erfassen verschiedene Aspekte der Klassifizierungsleistung.

Das Verständnis des Bias-Varianz-Kompromisses im Kontext des 0/1-Verlusts ist für die Bewertung und Verbesserung von Klassifizierungsmodellen von entscheidender Bedeutung. Durch die Analyse der Bias- und Varianzkomponenten können wir Einblicke in die Fehlerquellen gewinnen und fundierte Entscheidungen treffen, um Probleme mit Unter- oder Überanpassung abzumildern.

Wenn Sie an einer detaillierteren Untersuchung der Bias-Varianz-Zerlegung für den 0/1-Verlust interessiert sind, empfehle ich die Lektüre von Pedro Domingos Artikel „The Unified Bias Variance Decomposition“ und den zugehörigen Arbeiten von Kong und Dieterich. Diese Arbeiten bieten ausführliche Erklärungen und mathematische Formalismen für die Zerlegung.

Der Bias-Varianz-Kompromiss ist ein grundlegendes Konzept des maschinellen Lernens, das sich auf die Fähigkeit des Modells bezieht, zwischen Unteranpassung und Überanpassung auszugleichen. Der Bias-Term stellt den Fehler dar, der auf die Annahmen oder Vereinfachungen des Modells zurückzuführen ist und zu einem Szenario mit unzureichender Anpassung führt, bei dem das Modell zu einfach ist, um die zugrunde liegenden Muster in den Daten zu erfassen. Andererseits stellt der Varianzterm den Fehler dar, der auf die Empfindlichkeit des Modells gegenüber kleinen Schwankungen in den Trainingsdaten zurückzuführen ist, was zu einem Überanpassungsszenario führt, bei dem das Modell zu komplex ist und Rauschen statt verallgemeinerbarer Muster erfasst.

Im Fall des 0/1-Verlusts erfasst der Bias-Term den Fehlklassifizierungsfehler, wenn die Hauptvorhersage von der wahren Bezeichnung abweicht. Eine hohe Verzerrung weist darauf hin, dass das Modell durchweg falsche Vorhersagen trifft und nicht in der Lage ist, die wahren zugrunde liegenden Muster in den Daten zu erfassen. Dies geschieht häufig, wenn das Modell zu einfach ist oder nicht die nötige Komplexität aufweist, um die Komplexität des Problems zu erfassen.

Der Varianzterm hingegen erfasst die Variabilität von Vorhersagen, wenn die Hauptvorhersage mit der wahren Bezeichnung übereinstimmt. Es spiegelt die Empfindlichkeit des Modells gegenüber verschiedenen Trainingsdatenproben und die Instabilität seiner Vorhersagen wider. Eine hohe Varianz weist darauf hin, dass das Modell übermäßig empfindlich auf kleine Änderungen in den Trainingsdaten reagiert und wahrscheinlich eine Überanpassung aufweist. Das bedeutet, dass das Modell bei den Trainingsdaten möglicherweise eine gute Leistung erbringt, sich aber nicht auf nicht sichtbare Daten verallgemeinern lässt.

Idealerweise möchten wir ein Modell finden, das ein Gleichgewicht zwischen Bias und Varianz erreicht und beide Arten von Fehlern minimiert. Allerdings gibt es oft einen Kompromiss zwischen beiden. Eine Verringerung des Bias kann die Varianz erhöhen und umgekehrt. Dies wird als Bias-Varianz-Kompromiss bezeichnet.

Um die richtige Balance zu finden, können verschiedene Techniken eingesetzt werden. Regularisierungsmethoden wie die L1- oder L2-Regularisierung können dazu beitragen, die Komplexität des Modells zu reduzieren und die Varianz zu kontrollieren. Eine Kreuzvalidierung kann verwendet werden, um die Leistung des Modells für verschiedene Teilmengen der Daten zu bewerten und eine mögliche Überanpassung zu identifizieren. Ensemble-Methoden wie Bagging oder Boosting können ebenfalls eingesetzt werden, um die Varianz durch die Kombination mehrerer Modelle zu reduzieren.

Das Verständnis des Bias-Varianz-Kompromisses ist für die Modellauswahl und die Optimierung der Hyperparameter von entscheidender Bedeutung. Es ermöglicht uns, die Generalisierungsleistung des Modells zu bewerten und fundierte Entscheidungen zu treffen, um seine Genauigkeit und Zuverlässigkeit zu verbessern.

8.5 Bias-Variance Decomposition of the 0/1 Loss (L08: Model Evaluation Part 1)
8.5 Bias-Variance Decomposition of the 0/1 Loss (L08: Model Evaluation Part 1)
  • 2020.11.05
  • www.youtube.com
This video discusses the tricky topic of decomposing the 0/1 loss into bias and variance terms.-------This video is part of my Introduction of Machine Learni...