K-fold kryssvalidering i maskinlæring

Oppdatert på June 22, 2024 2 minutter lest

K-fold kryssvalidering i maskinlæring cover image

K-fold kryssvalidering er en teknikk som brukes til å vurdere ytelsen til en modell. Det er spesielt nyttig for å estimere hvor godt en modell vil generalisere til nye, usynlige data. Prosessen innebærer å dele opp datasettet i ‘k’ undersett eller folder av omtrent like stor størrelse. Her er en oversikt over trinnene:

1. Datasettdeling:

Datasettet er delt inn i ‘k’ like store delsett eller folder. For eksempel, hvis du har 1000 prøver og velger ‘k’ som 5, vil hver fold inneholde 200 prøver.

2. Iterativ opplæring og evaluering:

Modellen er trent ‘k’ ganger. I hver iterasjon brukes en annen fold som valideringssett, og de resterende foldene brukes til trening. For eksempel:

  • Iterasjon 1: Brett 1 som validering, Bretter 2 til k for trening

  • Iterasjon 2: Fold 2 som validering, fold 1 og 3 til k for trening

  • Iterasjon 3: Fold 3 som validering, fold 1 og 2, og 4 til k for trening

  • … og så videre til alle folder er brukt som et valideringssett.

3. Ytelsesevaluering:

Etter hver iterasjon blir modellens ytelse evaluert ved hjelp av en valgt beregning (f.eks. nøyaktighet, presisjon, tilbakekalling, etc.) på valideringssettet. Ytelsesberegningene fra hver iterasjon er gjennomsnittsberegnet eller kombinert for å gi et overordnet estimat av modellens ytelse.

4. Aggregering av beregninger:

Ytelsesberegningene (f.eks. nøyaktighetspoeng) fra hver iterasjon beregnes i gjennomsnitt eller kombineres for å gi en totalvurdering av modellens ytelse. Denne aggregerte beregningen representerer modellens forventede ytelse på usynlige data.

Fordeler med K-fold kryssvalidering fremfor en enkel tog-/testdeling

  • Bedre bruk av data: K-fold kryssvalidering gjør bedre bruk av tilgjengelige data ettersom hver prøve brukes til både trening og validering.

  • Redusert varians i ytelsesestimat: Det gir et mer pålitelig estimat av modellytelse ved å redusere variansen knyttet til en enkelt tog-/testdeling.

  • Generalisering: Det hjelper med å forstå hvordan modellen presterer på forskjellige delsett av dataene, og vurderer derved dens generaliseringsevne.

Velge verdien av ‘k’

  • Høyere ‘k’-verdier: Bruk av en høyere ‘k’-verdi (f.eks. 10 eller mer) resulterer i mindre valideringssett, noe som kan føre til lavere skjevhet i ytelsesestimatet, men høyere beregningskostnad.

  • Lavere ‘k’-verdier: Bruk av en lavere ‘k’-verdi (f.eks. 3 eller 5) reduserer beregningskostnader, men kan føre til en høyere skjevhet i ytelsesestimatet på grunn av mindre validering settene.

I praktiske scenarier

  • For store datasett kan høyere ‘k’-verdier være beregningsmessig dyre.

  • Når datasettet er lite, kan det hende at en høyere ‘k’ ikke gir nok data i hver fold for robust modelltrening.

  • Vanligvis brukes verdier som 5 eller 10 ofte fordi de finner en balanse mellom beregningseffektivitet og pålitelig ytelsesestimat.