Statistische Leistung von XGBoost im Modell-Screening-TestsatzHallo,
Ich verwende Modell-Screening und verschachtelte Kreuzvalidierung, um mehrere ML-Modelle für die Klassifizierung einer Krankheit zu vergleichen. XGBoost schneidet über die Testfaltungen hinweg bei ROC-AUC und Fehlklassifizierungsrate am besten ab. Wenn ich mir jedoch mithilfe einer Entscheidungsschwellenwertanalyse andere Statistiken genauer ansehen möchte, erhalte ich alle Leistungen (F1-Scores, MCC, Sens, Spec? usw.) für alle anderen Modelle, aber nicht für XGBoost im Testsatz. Warum ist das so? Ich möchte diese Statistiken auch melden. Gibt es einen Tipp, wie ich diese Statistiken auch für die Testfaltungen im XGBoost-Modell erhalten kann?
Grüße,
Montag
Grundlegende Datenanalyse und -modellierungPrädiktive Modellierung und maschinelles LernenBetreff: Statistische Leistung von XGBoost im Modell-Screening-TestsatzHallo @Lu ,
Nur zur Klarstellung: Anpassungen der Entscheidungsschwellenwerte sollten am Validierungssatz und nicht am Testsatz vorgenommen werden.
Hier einige Hinweise zu den verwendeten Begriffen und ihrer Verwendung:
- Trainingsset : Wird für das eigentliche Training des/der Modells/Modelle verwendet,
- Validierungssatz : Wird zur Modelloptimierung (z. B. Feinabstimmung der Hyperparameter, Auswahl von Merkmalen/Schwellenwerten usw.) und Modellauswahl verwendet.
- Testset : Wird zur Generalisierung und prädiktiven Leistungsbewertung des ausgewählten Modells anhand neuer/ungesehener Daten verwendet.
Der Zweck des Validierungssatzes besteht darin, beim Vergleichen und Auswählen eines Modells sowie bei der Feinabstimmung von Hyperparametern oder Entscheidungsschwellenwerten zu helfen.
Der Testsatz sollte während des Modelltrainings und der Feinabstimmung in keiner Weise verwendet werden, da er als endgültige, unvoreingenommene „Validierung“ Ihres Modells und als endgültige Bewertung der Leistung Ihres Modells dient.
Mehr zur Unterscheidung zwischen Validierungs- und Test-Sets können Sie in den folgenden Gesprächen nachlesen:
Wenn wir in der Ausgabe „Trainings-“ und „Validierungsergebnisse“ sehen, auch wenn wir das Modell in JMP Pro separat auf die Test- und Trainingsdaten anwenden. Was ist dann zu tun, um nur die Ergebnisse der Test- und Trainingsdaten zu erhalten? Kreuzvalidierung – Validierungsspaltenmethode
...
Zu Ihrer konkreten Frage: Wenn ich mich nicht irre, ist XGBoost für die JMP Pro-Version nur über ein von @russ_wolfinger erstelltes Add-In verfügbar. Da es sich also um eine über ein Add-In hinzugefügte Funktionalität handelt, sind möglicherweise nicht alle Optionen zur Modelloptimierung verfügbar (wie z. B. die Entscheidungsschwelle). Sie können einen Wunsch auf der JMP-Wunschliste erstellen oder einen Kommentar zu dieser Situation auf der dem XGBoost-Add-In gewidmeten Seite schreiben.
Wenn XGBoost jedoch das leistungsstärkste Modell ist, könnten Sie:
- Trennen Sie zunächst Ihren Testsatz von Ihren Trainings-/Validierungsdaten! Auf diese Weise werden die Testdaten in keinem Schritt vom Modell gesehen und Sie verwenden die Testdaten erst, wenn Ihr Modell feste Hyperparameter und Entscheidungsschwellenwerte hat.
- Erstellen Sie eine K-Folds-Validierungsspalte in Ihrem Trainings-/Validierungsdatensatz.
- Starten Sie die XGBoost-Plattform (über das Add-In-Menü) und geben Sie Ihre K-Folds-Spaltenvalidierung an:

- Führen Sie das XGBoost-Training aus und passen Sie den Entscheidungsschwellenwert im Validierungssatz an:

- Speichern Sie die Vorhersageformel und bewerten Sie die Leistung anhand des Testsatzes.
Hoffe, diese Antwort wird Ihnen helfen,
Betreff: Statistische Leistung von XGBoost im Modell-Screening-TestsatzDanke für die hervorragende Antwort @Victor_G
@Lu , ich wollte erwähnen, dass wir beim Modell-Screening ein Leckage-Problem in Version 19 behoben haben – ab sofort über Early Adopter verfügbar und voraussichtlich in einigen Wochen in Produktion. Ich empfehle, den Test mit Version 19 erneut auszuführen, sobald Sie ihn erhalten. Ich denke, die XGBoost-Testergebnisse sollten vorhanden sein, und wie @Victor_G treffend anmerkt, sollten Sie zum Vergleichen von Modellen immer die Testsatzaufteilung verwenden.
Beachten Sie, dass XGBoost und Torch sich von anderen JMP-Plattformen dadurch unterscheiden, dass sie nur Zwei-Wege-Splits (Training und Validierung) verwenden. Sie beobachten den Validierungssplit während des Trainings jedoch nicht, sodass die Validierungsergebnisse leckagefrei sind. Ihr Setup ist auf eine vollständige K-fache Kreuzvalidierung und das Speichern von Out-of-Fold-Vorhersagen ausgelegt, anstatt einen einzelnen Drei-Wege-Split durchzuführen.
Ein paar zusätzliche Vorschläge:
1. Probieren Sie die Autotune-Option in XGBoost aus, indem Sie das eigenständige Setup wie von @Victor_G beschrieben verwenden. (Das Add-In enthält außerdem das Dienstprogramm „Make K-Fold Columns“.) Sie können wahrscheinlich eine noch bessere Out-of-Fold-Leistung erzielen.
2. Auch die neuronalen Netze von Torch Deep Learning sind zum Vergleich definitiv einen Versuch wert. Für absolute Spitzenleistung kombinieren Sie sie mit XGBoost.
Betreff: Statistische Leistung von XGBoost im Modell-Screening-TestsatzVielen Dank für die tolle Antwort, Victor und Ross. Ich freue mich schon darauf, zu sehen, was die Model-Screening-Plattform in Version 19 in naher Zukunft Neues bringen wird!
Grüße,
Spiel