Trend-Themen
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Das Team von Andrew Ng hat einmal einen großen Fehler in einem Forschungsbericht gemacht.
Und das geschah aufgrund der zufälligen Aufteilung der Daten.
Hier ist genau das passiert (mit Lösung):
Es ist üblich, Trainings- und Validierungssets durch zufällige Aufteilung zu generieren.
In vielen Situationen kann dies jedoch fatal für den Modellaufbau sein.
Betrachten Sie den Aufbau eines Modells, das Bildunterschriften für Bilder generiert.
Aufgrund der inhärenten Natur der Sprache kann jedes Bild viele verschiedene Bildunterschriften haben.
- Bild-1 → Bildunterschrift-1, Bildunterschrift-2, Bildunterschrift-3 usw.
- Bild-2 → Bildunterschrift-1, Bildunterschrift-2, Bildunterschrift-3 usw.
Überprüfen Sie dies 👇

Wenn wir zufällige Aufteilung verwenden, wird derselbe Datenpunkt (Bild) sowohl in den Trainings- als auch in den Validierungssets verfügbar sein.
Infolgedessen bewerten wir das Modell auf den Instanzen, auf denen es trainiert wurde.
Dies ist ein Beispiel für Datenleckage (auch als Gruppenleckage bezeichnet), was zu Overfitting führt!

Das Gleiche geschah in Andrew Ng's Papier, wo sie einen medizinischen Datensatz zur Erkennung von Lungenentzündung vorbereiteten.
- Gesamtbilder = 112k
- Gesamtpatienten = 30k
Aufgrund der zufälligen Aufteilung waren die Bilder desselben Patienten sowohl in den Trainings- als auch in den Validierungssets verfügbar.
Dies führte zu Datenlecks, und die Validierungsergebnisse sahen viel besser aus, als sie hätten sein sollen.
Das ist ihr ursprüngliches Papier👇

Die Gruppenshuffle-Aufteilung hat dies gelöst.
Es gibt zwei Schritte:
1) Alle Trainingsinstanzen, die einem Bild entsprechen, gruppieren.
2) Nach der Gruppierung muss die GESAMTE GRUPPE (alle Beispiele eines Bildes) zufällig dem Trainings- oder Validierungsset zugewiesen werden.
Dies wird das Gruppenleck verhindern.

Wenn Sie Sklearn verwenden, implementiert der GroupShuffleSplit diese Idee.
Als Beispiel betrachten wir den folgenden Datensatz:
- x1 und x2 sind die Merkmale.
- y ist die Zielvariable.
- group bezeichnet die Gruppierungskriterien.
Überprüfen Sie dies 👇

Zuerst importieren wir GroupShuffleSplit von sklearn und instanziieren das Objekt.
Als Nächstes ermöglicht uns die split()-Methode dieses Objekts, Gruppenteilungen durchzuführen. Sie gibt einen Generator zurück, den wir entpacken können, um die folgende Ausgabe zu erhalten:
- Die Datenpunkte in den Gruppen „A“ und „C“ sind zusammen im Trainingssatz.
- Die Datenpunkte in der Gruppe „B“ sind zusammen im Validierungs-/Testdatensatz.
Überprüfen Sie dies 👇

Einige Tage später aktualisierte das Team von Andrew Ng das Papier, nachdem es die gleiche Gruppen-Shuffle-Split-Strategie verwendet hatte, um sicherzustellen, dass dieselben Patienten nicht sowohl in den Trainings- als auch in den Validierungssets landeten.
👉 Über zu dir: Hast du dieses Problem schon einmal gehabt?

11,84K
Top
Ranking
Favoriten

