Warum tastet die scikit-learn-Bootstrap-Funktion den Testsatz erneut ab?

15

Bei der Verwendung von Bootstrapping für die Modellbewertung dachte ich immer, dass die Out-of-Bag-Proben direkt als Testsatz verwendet wurden. Dies scheint jedoch nicht der Fall zu sein für den veralteten Scikit-Lernansatz,Bootstrap bei dem der Testsatz aus dem Zeichnen mit Ersetzen aus der Out-of-Bag- Datenuntermenge aufgebaut zu werden scheint. Was ist die statistische Begründung dahinter? Gibt es bestimmte Szenarien, in denen diese Technik besser ist als nur die Auswertung anhand der Out-of-Bag-Probe oder umgekehrt?

Kauderfisch
quelle
Kreuzvalidierung? Resampling?
EngrStudent
Wenn Sie sich auf das Tag beziehen, wurde das von mir nicht hinzugefügt. Eigentlich bin ich Bootstrapping als Alternative zum Lebenslauf.
Kauderfisch
Ich denke du verstehst falsch. Bei der Kreuzvalidierung werden sie den Prozess für eine Teilmenge der Daten mehrmals wiederholen und die Variation der Ergebnisse oder Modellparameter untersuchen. In diesem Fall gibt die Parametervariation selbst Auskunft über die Qualität der Anpassung und nicht unbedingt über den OOB-Fehler. Ich bin mit der jeweiligen Bibliothek nicht vertraut, daher habe ich nur einen Kommentar zu der Idee hinterlassen.
EngrStudent

Antworten:

3

Bootstrap-Beispiele werden verwendet, um die Leistung des Algorithmus durch viele Iterationen zu bewerten. Dabei wird die Leistung bei zufällig geänderten Sätzen bewertet.

Im Gegensatz dazu führen Sie beispielsweise bei der 10-fachen Kreuzvalidierung nur 10 Iterationen für verschiedene Zug- und Testdatensätze durch.

n=20ich=10,000

Der Link, den Sie posten, ist nicht verfügbar, daher habe ich die Beschreibung der Funktion in der aktuellen (0.14) Version von sklearn hinzugefügt

Beschreibung der Methode

Zufallsstichprobe mit Ersatz-Kreuzvalidierungsiterator Bietet Zug- / Testindizes zum Teilen von Daten in Zugtestsätzen, während die Eingabe n_iter mal neu abgetastet wird: Jedes Mal, wenn eine neue zufällige Aufteilung der Daten durchgeführt wird, werden auf jeder Seite Stichproben (mit Ersetzen) gezogen der Aufteilung, um die Trainings- und Testsätze zu erstellen. Hinweis: Im Gegensatz zu anderen Kreuzvalidierungsstrategien können beim Bootstrapping einige Beispiele in jedem Split mehrmals auftreten. Eine Stichprobe, die in der Zugaufteilung auftritt, wird jedoch niemals in der Testaufteilung auftreten und umgekehrt. Wenn Sie möchten, dass jede Probe höchstens einmal auftritt, sollten Sie stattdessen wahrscheinlich die ShuffleSplit-Kreuzvalidierung verwenden.

MaxBenChrist
quelle
2

Vielleicht warst du auf etwas. Es scheint, dass andere an demselben Faden gezogen haben und Bootstrapzugunsten einer bewussteren Verwendung der resampleMethode mit den bewährten sklearn.cross_validationAnsätzen wie abgelehnt wurden StratifiedKFold.

Kochfelder
quelle