K-faldig korsvalidering i maskininlärning
Uppdaterad på June 22, 2024 2 minuter läst

K-faldig korsvalidering är en teknik som används för att bedöma en modells prestanda. Det är särskilt användbart för att uppskatta hur väl en modell kommer att generalisera till nya, osynliga data. Processen involverar att dela upp datasetet i “k” undergrupper eller veck av ungefär lika stor storlek. Här är en uppdelning av stegen:
1. Datauppdelning:
Datauppsättningen är uppdelad i ‘k’ lika stora delmängder eller veck. Till exempel, om du har 1 000 prover och väljer ‘k’ som 5, kommer varje veck att innehålla 200 prover.
2. Iterativ utbildning och utvärdering:
Modellen tränas ‘k’ gånger. I varje iteration används en annan veck som valideringsuppsättning, och de återstående vecken används för träning. Till exempel:
-
Iteration 1: Vik 1 som validering, Vik 2 till k för träning
-
Iteration 2: Vik 2 som validering, Vik 1 och 3 till k för träning
-
Iteration 3: Vik 3 som validering, Vik 1 och 2, och 4 till k för träning
-
… och så vidare tills alla veck har använts som en valideringsuppsättning.
3. Prestandautvärdering:
Efter varje iteration utvärderas modellens prestanda med hjälp av en vald måttenhet (t.ex. noggrannhet, precision, återkallelse, etc.) på valideringsuppsättningen. Prestandamåtten från varje iteration beräknas i medeltal eller kombineras för att ge en övergripande uppskattning av modellens prestanda.
4. Aggregation av mätvärden:
Prestandamåtten (t.ex. noggrannhetspoäng) från varje iteration beräknas i medeltal eller kombineras för att ge en övergripande bedömning av modellens prestanda. Detta aggregerade mått representerar modellens förväntade resultat på osynliga data.
Fördelar med K-faldig korsvalidering jämfört med en enkel tåg-/testdelning
-
Bättre användning av data: K-faldig korsvalidering gör bättre användning av tillgänglig data eftersom varje prov används för både träning och validering.
-
Minskad varians i prestandauppskattning: Den ger en mer tillförlitlig uppskattning av modellprestanda genom att minska variansen som är förknippad med en enstaka tåg/testdelning.
-
Generalisering: Det hjälper till att förstå hur modellen presterar på olika delmängder av data, och bedömer därför dess generaliseringsförmåga.
Välja värdet för ‘k’
-
Högre ‘k’-värden: Användning av ett högre ‘k’-värde (t.ex. 10 eller mer) resulterar i mindre valideringsuppsättningar, vilket kan leda till lägre bias i prestandauppskattningen men högre beräkningskostnad.
-
Lägre ‘k’-värden: Användning av ett lägre ‘k’-värde (t.ex. 3 eller 5) minskar beräkningskostnader men kan leda till en högre bias i prestandauppskattningen på grund av mindre validering set.
I praktiska scenarier
-
För stora datamängder kan högre ‘k’-värden vara beräkningsmässigt dyra.
-
När datauppsättningen är liten, kanske ett högre ‘k’ inte ger tillräckligt med data i varje veck för robust modellträning.
-
Generellt används värden som 5 eller 10 ofta eftersom de skapar en balans mellan beräkningseffektivitet och tillförlitlig prestandauppskattning.