Bootstrap-Aggregation - Bootstrap aggregating

Bagging , auch genannt Absacken (von b ootstrap agg Regat ing ) ist ein Maschinengesamteindrucks - Lern meta-Algorithmus entwickelt , um die zur Verbesserung der Stabilität und die Genauigkeit der Maschinenlernalgorithmen in statistischer Klassifikation und Regression . Es reduziert auch die Varianz und hilft, Overfitting zu vermeiden . Obwohl es normalerweise auf Entscheidungsbaummethoden angewendet wird , kann es mit jedem Methodentyp verwendet werden. Bagging ist ein Sonderfall des Modellmittelungsansatzes .

Beschreibung der Technik

Bei einem gegebenen Standard- Trainingssatz der Größe n erzeugt das Einsacken m neue Trainingssätze , jeder mit der Größe n' , durch einheitliches Abtasten von D und mit Ersetzen . Durch Probenahme mit Austausch können einige Beobachtungen in jedem wiederholt werden . Wenn n = n ist , dann wird für große n erwartet, dass die Menge den Bruchteil (1 – 1/ e ) (≈63,2%) der eindeutigen Beispiele von D hat , der Rest sind Duplikate. Diese Art von Sample wird als Bootstrap- Sample bezeichnet. Durch das Sampling mit Ersetzung wird sichergestellt, dass jeder Bootstrap unabhängig von seinen Peers ist, da er beim Sampling nicht von zuvor ausgewählten Samples abhängt. Dann werden m Modelle unter Verwendung der obigen m Bootstrap-Samples angepasst und durch Mittelung der Ausgabe (zur Regression) oder Abstimmung (zur Klassifizierung) kombiniert.

Eine Illustration für das Konzept der Bootstrap-Aggregation


Bagging führt zu "Verbesserungen für instabile Verfahren", zu denen beispielsweise künstliche neuronale Netze , Klassifikations- und Regressionsbäume sowie die Teilmengenauswahl bei der linearen Regression gehören . Es wurde gezeigt, dass das Einsacken das Lernen von Vorbildern verbessert. Auf der anderen Seite kann es die Leistung stabiler Methoden wie K-nächster Nachbarn leicht verschlechtern.

Ablauf des Algorithmus

Originaldatensatz

Der Originaldatensatz enthält mehrere Einträge von Stichproben von s1 bis s5. Jedes Sample hat fünf Funktionen (Gen 1 bis Gen 5). Alle Proben werden für ein Klassifizierungsproblem mit Ja oder Nein gekennzeichnet.

Proben Gen 1 Gen 2 Gen 3 Gen 4 Gen 5 Ergebnis
s1 1 0 1 0 0 Nein
s2 1 0 0 0 1 Nein
s3 0 1 1 0 1 Jawohl
s4 1 1 1 0 1 Jawohl
s5 0 0 0 1 1 Nein

Erstellung von Bootstrapped-Datensätzen

Angesichts der obigen Tabelle, um eine neue Stichprobe zu klassifizieren, muss zuerst ein Bootstrapping-Dataset mit den Daten aus dem ursprünglichen Dataset erstellt werden. Dieses Bootstrapping-Dataset hat normalerweise die Größe des ursprünglichen Datasets oder kleiner.

In diesem Beispiel beträgt die Größe fünf (s1 bis s5). Der Bootstrapping-Datensatz wird durch zufällige Auswahl von Stichproben aus dem Originaldatensatz erstellt. Wiederholungsauswahlen sind erlaubt. Alle Stichproben, die nicht für das Bootstrapping-Dataset ausgewählt wurden, werden in einem separaten Dataset platziert, das als Out-of-bag-Dataset bezeichnet wird.

Sehen Sie sich unten ein Beispiel für ein Bootstrapped-Dataset an. Es hat fünf Einträge (gleiche Größe wie der ursprüngliche Datensatz). Es gibt doppelte Einträge wie z. B. zwei s3, da die Einträge zufällig mit Ersetzung ausgewählt werden.

Proben Gen 1 Gen 2 Gen 3 Gen 4 Gen 5 Ergebnis
s1 1 0 1 0 0 Nein
s3 0 1 1 0 1 Jawohl
s2 1 0 0 0 1 Nein
s3 0 1 1 0 1 Jawohl
s4 1 1 1 0 1 Jawohl


Dieser Schritt wird wiederholt, um m Bootstrapped-Datasets zu generieren.

Erstellen von Entscheidungsbäumen

NeuBootstrapdatasettree

Für jedes Bootstrapping-Dataset wird ein Entscheidungsbaum erstellt, wobei zufällig ausgewählte Spaltenwerte verwendet werden, um die Knoten aufzuteilen.

Vorhersage mit mehreren Entscheidungsbäumen

NewEntryIntoBaseTableExample Wenn der Tabelle eine neue Stichprobe hinzugefügt wird, wird das Bootstrapping-Dataset verwendet, um den Klassifikatorwert des neuen Eintrags zu bestimmen.

NeuEintragstestbaum

Die neue Stichprobe wird in der zufälligen Gesamtstruktur getestet, die von jedem Bootstrapping-Dataset erstellt wird, und jeder Baum erzeugt einen Klassifikatorwert für die neue Stichprobe. Für die Klassifizierung wird ein Verfahren namens Voting verwendet, um das Endergebnis zu bestimmen, wobei das am häufigsten von der Zufallsstruktur erzeugte Ergebnis das gegebene Ergebnis für die Stichprobe ist. Für die Regression wird der Stichprobe der von den Bäumen erzeugte durchschnittliche Klassifikatorwert zugewiesen.

FinalTable

Nachdem die Stichprobe im Random Forest getestet wurde, wird der Stichprobe ein Klassifikatorwert zugewiesen und der Tabelle hinzugefügt.

Algorithmus (Klassifizierung)

Flussdiagramm des Bagging-Algorithmus bei Verwendung zur Klassifizierung

Verwenden Sie für die Klassifizierung einen Trainingssatz , Inducer und die Anzahl der Bootstrap-Samples als Eingabe. Klassifikator als Ausgabe generieren

  1. Erstellen Sie neue Trainingssätze , ab mit Ersatz
  2. Classifier aus jedem Satz gebaut unter Verwendung von auf die Klassifizierung des Satzes zu bestimmen ,
  3. Schließlich wird der Klassifikator generiert, indem der zuvor erstellte Satz von Klassifikatoren für den ursprünglichen Datensatz verwendet wird. Die von den Unterklassifikatoren am häufigsten vorhergesagte Klassifizierung ist die endgültige Klassifizierung
for i = 1 to m {
    D' = bootstrap sample from D    (sample with replacement)
    Ci = I(D')
}
C*(x) = argmax    Σ 1               (most often predicted label y)
         y∈Y   i:Ci(x)=y

Beispiel: Ozondaten

Um die Grundprinzipien des Absackens zu veranschaulichen, folgt unten eine Analyse der Beziehung zwischen Ozon und Temperatur (Daten von Rousseeuw und Leroy (1986), Analyse in R ).

Die Beziehung zwischen Temperatur und Ozon scheint in diesem Datensatz basierend auf dem Streudiagramm nicht linear zu sein. Um diesen Zusammenhang mathematisch zu beschreiben, werden LOESS- Glätter (mit Bandbreite 0,5) verwendet. Anstatt einen einzelnen Smoother für den gesamten Datensatz zu erstellen, wurden 100 Bootstrap- Stichproben gezogen. Jede Stichprobe besteht aus einer zufälligen Teilmenge der Originaldaten und behält einen Anschein der Verteilung und Variabilität der Hauptmenge bei. Für jedes Bootstrap-Sample wurde ein LOESS-Glättungser angepasst. Vorhersagen von diesen 100 Glättern wurden dann über den gesamten Datenbereich gemacht. Die schwarzen Linien repräsentieren diese anfänglichen Vorhersagen. Die Linien stimmen in ihren Vorhersagen nicht überein und neigen dazu, ihre Datenpunkte zu überstimmen, was durch den wackeligen Fluss der Linien deutlich wird.

Ozon.png

Indem wir den Durchschnitt von 100 Glättern bilden, die jeweils einer Teilmenge des ursprünglichen Datensatzes entsprechen, erhalten wir einen eingesackten Prädiktor (rote Linie). Der Fluss der roten Linie ist stabil und passt sich keinem Datenpunkt zu sehr an.

Vorteile und Nachteile

Vorteile:

  • Viele aggregierte schwache Lernende übertreffen in der Regel einen einzelnen Lernenden über das gesamte Set und haben weniger Overfit
  • Entfernt die Varianz bei schwachen Lernenden mit hoher Varianz und niedrigem Bias
  • Kann parallel ausgeführt werden , da jeder separate Bootstrap vor der Kombination einzeln verarbeitet werden kann

Nachteile:

  • Für schwache Lernende mit hoher Voreingenommenheit trägt das Einsacken auch eine hohe Voreingenommenheit in die Gesamtheit ein
  • Verlust der Interpretierbarkeit eines Modells.
  • Kann je nach Datensatz rechenintensiv sein

Geschichte

Das Konzept des Bootstrap Aggregating leitet sich vom Konzept des Bootstrapping ab, das von Bradley Efron entwickelt wurde. Bagging wurde von vorgeschlagen Leo Breiman , der auch die abgekürzte Bezeichnung „Absacken“ (geprägt b ootstrap agg Regat ing ). Breiman entwickelte 1994 das Konzept des Bagging, um die Klassifikation durch die Kombination von Klassifikationen von zufällig generierten Trainingssätzen zu verbessern. Er argumentierte: "Wenn die Störung des Lernsatzes zu signifikanten Änderungen des konstruierten Prädiktors führen kann, kann das Einsacken die Genauigkeit verbessern".

Siehe auch

Verweise

Weiterlesen