Populære emner
#
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.
Andrew Ngs team gjorde en gang en stor feil i en forskningsartikkel.
Og det skjedde fordi dataene ble delt opp tilfeldig.
Her er nøyaktig hva som skjedde (med løsning):
Det er vanlig å generere trenings- og valideringssett ved hjelp av tilfeldig splitting.
Men i mange situasjoner kan det være fatalt for modellbygging.
Vurder å bygge en modell som genererer bildetekster for bilder.
På grunn av språkets iboende natur kan hvert bilde ha mange forskjellige bildetekster.
- Bilde-1 → Bildetekst-1, Bildetekst-2, Bildetekst-3, osv.
- Bilde-2 → Bildetekst-1, Bildetekst-2, Bildetekst-3, osv.
Sjekk dette 👇

Hvis vi bruker tilfeldig splitting, vil det samme datapunktet (bildet) være tilgjengelig i tog- og valideringssettene.
Som et resultat ender vi opp med å evaluere modellen på forekomstene den ble trent på.
Dette er et eksempel på datalekkasje (også kalt gruppelekkasje), som resulterer i overtilpasning!

Det samme skjedde i Andrew Ngs artikkel, hvor de utarbeidet et medisinsk datasett for å oppdage lungebetennelse.
- Totalt antall bilder = 112k
- Totalt antall pasienter = 30 000
På grunn av tilfeldig splitting var bilder av samme pasient tilgjengelige både i trenings- og valideringssettene.
Dette førte til datalekkasje, og valideringsscorene så mye bedre ut enn de burde.
Dette er deres første artikkel👇

Gruppefordelingen løste dette.
Det er to trinn:
1) Gruppere alle treningsinstanser som tilsvarer ett bilde.
2) Etter gruppering må HELE GRUPPEN (alle eksempler på ett bilde) tildeles tilfeldig toget eller valideringssettet.
Dette vil forhindre gruppelekkasje.

Hvis du bruker Sklearn, implementerer GroupShuffleSplit denne ideen.
Som et eksempel, betrakt oss følgende datasett:
- X1 og x2 er funksjonene.
- y er målvariabelen.
- gruppe betegner grupperingskriteriene.
Sjekk dette 👇

Først importerer vi GroupShuffleSplit fra sklearn og instansierer objektet.
Deretter lar split()-metoden til dette objektet oss utføre gruppesplitting. Den returnerer en generator, og vi kan pakke den ut for å få følgende resultat:
- Datapunktene i gruppene "A" og "C" er samlet i treningssettet.
- Datapunktene i gruppe "B" er samlet i validerings-/testsettet.
Sjekk dette 👇

Noen dager senere oppdaterte Andrew Ngs team artikkelen etter å ha brukt samme gruppefordelingsstrategi for å sikre at de samme pasientene ikke havnet i både opplærings- og valideringssettene.
👉 Over til deg: Har du opplevd dette før?

9,93K
Topp
Rangering
Favoritter

