k-fach Kreuzvalidierung des Ensemble-Lernens


20

Ich bin verwirrt darüber, wie die Daten für die k-fache Kreuzvalidierung des Ensemble-Lernens aufgeteilt werden sollen.

Angenommen, ich habe einen Lernrahmen für die Klassifizierung von Ensembles. Meine erste Ebene enthält die Klassifizierungsmodelle, z. B. SVM, Entscheidungsbäume.

Meine zweite Ebene enthält ein Abstimmungsmodell, das die Vorhersagen aus der ersten Ebene kombiniert und die endgültige Vorhersage liefert.

Wenn wir eine 5-fach-Kreuzvalidierung verwenden, denke ich an die 5-fach-Validierung wie folgt:

  • 3 Falten für das Training der ersten Schicht
  • 1 fach für das Training der zweiten Schicht
  • 1 fach zum Testen

Ist das der richtige Weg? Sollten die Trainingsdaten für die erste und zweite Schicht unabhängig sein? Ich denke, sie sollten unabhängig sein, damit der Lernrahmen für das Ensemble robust ist.

Mein Freund schlägt vor, dass die Trainingsdaten für die erste und zweite Schicht gleich sein sollten, d. H

  • 4 Falten für das Training der ersten und zweiten Schicht
  • 1 fach zum Testen

Auf diese Weise erhalten wir einen genaueren Fehler des Ensemble-Lern-Frameworks und die iterative Abstimmung des Frameworks wird genauer, da es auf einzelnen Trainingsdaten basiert. Darüber hinaus kann die zweite Schicht auf die unabhängigen Trainingsdaten ausgerichtet sein

Alle Ratschläge sind sehr dankbar

Antworten:


26

Ensemble-Lernen bezieht sich auf eine ganze Reihe verschiedener Methoden. Boosting und Bagging sind wahrscheinlich die beiden häufigsten. Es scheint, dass Sie versuchen, eine Ensemble-Lernmethode namens Stapeln zu implementieren . Das Stapeln zielt darauf ab, die Genauigkeit zu verbessern, indem Vorhersagen aus mehreren Lernalgorithmen kombiniert werden. Es gibt eine ganze Reihe von Möglichkeiten zum Stapeln und nicht viel strenge Theorie. Es ist jedoch intuitiv und beliebt.

Betrachten Sie den Ansatz Ihres Freundes. Sie passen die Modelle der ersten Ebene auf vier von fünf Falten an und passen dann das Modell der zweiten Ebene (Abstimmung) mit denselben vier Falten an. Das Problem ist, dass die zweite Schicht das Modell mit dem geringsten Trainingsfehler bevorzugt. Sie verwenden dieselben Daten, um Modelle anzupassen und eine Prozedur zum Aggregieren dieser Modelle zu entwickeln. Die zweite Schicht sollte die Modelle mit Vorhersagen außerhalb der Stichprobe kombinieren . Ihre Methode ist besser, aber es gibt einen Weg, noch besser zu werden.

Wir werden weiterhin eine Falte für Testzwecke weglassen. Nehmen Sie die vier Falten und verwenden Sie den vierfachen Lebenslauf, um für jedes Modell der ersten Ebene für alle vier Falten Vorhersagen zu erhalten, die außerhalb der Stichprobe liegen. Das heißt, lassen Sie eine der vier Falten weg und passen Sie die Modelle auf die anderen drei an und sagen Sie sie dann auf den gehaltenen Daten voraus. Wiederholen Sie diesen Vorgang für alle vier Falten, damit Sie für alle vier Falten Vorhersagen erhalten, die außerhalb der Stichprobe liegen. Passen Sie dann das zweite Ebenenmodell an diese Vorhersagen außerhalb der Stichprobe an. Dann passen Sie die Modelle der ersten Schicht wieder auf alle vier Falten. Jetzt können Sie zu der fünften Falte gehen, die Sie noch nicht berührt haben. Verwenden Sie die Modelle der ersten Ebene, die auf alle vier Falten passen, zusammen mit dem Modell der zweiten Ebene, um den Fehler in den gehaltenen Daten abzuschätzen. Sie können diesen Vorgang mit den anderen Falzen wiederholen, die aus der Modellanpassung der ersten und zweiten Ebene herausgehalten werden.

Wenn Sie mit der Leistung zufrieden sind, generieren Sie für die Modelle der ersten Ebene Vorhersagen für alle fünf Falten, die außerhalb der Stichprobe liegen, und passen Sie dann das Modell der zweiten Ebene an diese an. Dann passen Sie die Modelle der ersten Ebene ein letztes Mal an alle Ihre Daten an und verwenden Sie diese mit dem Modell der zweiten Ebene für alle neuen Daten!

Zum Schluss einige allgemeine Hinweise. Sie werden mehr Nutzen daraus ziehen, wenn sich Ihre Modelle der ersten Ebene ziemlich stark voneinander unterscheiden. Sie sind hier auf dem richtigen Weg, wenn Sie SVM und Entscheidungsbäume verwenden, die sich ziemlich voneinander unterscheiden. Da das Modell der zweiten Ebene einen Durchschnittseffekt aufweist, können Sie versuchen, die Modelle der ersten Ebene inkrementell anzupassen, insbesondere dann, wenn Sie über viele Modelle verfügen. Die zweite Schicht ist im Allgemeinen etwas Einfaches und Einschränkungen wie Nicht-Negativität von Gewichten und Monotonie sind üblich. Denken Sie schließlich daran, dass das Stapeln auf einer Kreuzvalidierung beruht, die nur eine Schätzung des tatsächlichen Risikos darstellt. Wenn Sie sehr unterschiedliche Fehlerraten und sehr unterschiedliche Modellgewichte über mehrere Falten hinweg erhalten, weist dies darauf hin, dass Ihre auf dem Lebenslauf basierende Risikoschätzung eine hohe Varianz aufweist. In diesem Fall sollten Sie eine einfache Mischung in Betracht ziehenIhrer ersten Schicht Modelle. Sie können auch Kompromisse eingehen, indem Sie das maximale / minimale Gewicht für jedes Modell der ersten Ebene mit Einschränkungen stapeln.


Vielen Dank für Ihre sehr hilfreichen Vorschläge. Ich verstehe deinen vierten Absatz nicht. Es scheint mir, dass es wieder trainiert? Ich dachte, Ihr dritter Absatz hat Ihre vorgeschlagene Methode zusammengefasst?
Michael

1
Sobald wir mit dem Modell zufrieden sind, trainieren wir, wie bei der Kreuzvalidierung üblich, mit allen Daten neu. Die in Absatz 3 beschriebenen Modelle passen nicht auf die durchgehaltenen Daten. Das Heraushalten von Daten ist ein Hilfsmittel zur Modellbewertung und -auswahl. Sie sollten immer das endgültige Modell auf alle Daten anpassen.
MichaelJ

Es scheint mir, dass dieser Ansatz einem vorwärtsgerichteten neuronalen Netzwerk ähnelt
Michael

Tolle Erklärung. Das einzige, was fehlt, ist ein Diagramm;)
Josh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.