K-fold kryssvalidering er en teknikk som brukes til å vurdere ytelsen til en modell. Den er spesielt nyttig for å estimere hvor godt en modell vil generalisere til nye, usette data. Prosessen innebærer at datasettet deles inn i "k" delmengder eller folder av omtrent samme størrelse. Her er en oversikt over trinnene:
1. Dataset Splitting:
Datasettet deles inn i "k" like store delmengder eller folder. Hvis du for eksempel har 1000 prøver og velger "k" som 5, vil hver fold inneholde 200 prøver.
2. Iterativ opplæring og evaluering:
Modellen trenes "k" ganger. I hver iterasjon brukes en ny fold som valideringssett, og de resterende foldene brukes til trening. For eksempel:
-
Iterasjon 1: Fold 1 som validering, Folds 2 til k for opplæring
-
Iterasjon 2: Fold 2 som validering, Folds 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 foldene er brukt som valideringssett.
3. Prestasjonsevaluering:
Etter hver iterasjon evalueres modellens ytelse ved hjelp av en valgt metrikk (f.eks. nøyaktighet, presisjon, tilbakekalling osv.) på valideringssettet. Ytelsesmålingene fra hver iterasjon beregnes som et gjennomsnitt eller kombineres for å gi et samlet estimat av modellens ytelse.
4. Aggregering av beregninger:
Ytelsesmålingene (f.eks. nøyaktighetspoeng) fra hver iterasjon beregnes i gjennomsnitt eller kombineres for å gi en samlet vurdering av modellens ytelse. Denne aggregerte beregningen representerer modellens forventede ytelse på usette data.
Fordeler med K-fold kryssvalidering i forhold til en enkel oppdeling i trening/testing
-
Bedre utnyttelse av data: K-fold kryssvalidering gir bedre utnyttelse av tilgjengelige data, ettersom hver prøve brukes til både opplæring og validering.
-
Redusert varians i ytelsesestimeringen: Det gir et mer pålitelig estimat av modellens ytelse ved å redusere variansen som er forbundet med en enkelt tog/test-splitt.
-
Generalisering: Det bidrar til å forstå hvordan modellen fungerer på ulike delmengder av dataene, og dermed til å vurdere generaliseringsevnen.
Valg av verdi for "k
-
Høyere k-verdier: Bruk av en høyere 'k'-verdi (f.eks. 10 eller mer)C_ resulterer i mindre valideringssett, noe som kan føre til mindre skjevhet i ytelsesestimatet, men høyere beregningskostnader.
-
Lavere k-verdier: Bruk av en lavere 'k'-verdi (f.eks. 3 eller 5) reduserer beregningskostnadene, men kan føre til en større skjevhet i ytelsesestimatet på grunn av mindre valideringssett.
I praktiske scenarier
-
For store datasett kan høyere k-verdier være beregningskrevende.
-
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 for å finne en balanse mellom beregningseffektivitet og pålitelig ytelsesestimering.