K-fold 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, osedda data. Processen innebär att datasetet delas upp i "k" delmängder eller foldar av ungefär samma storlek. Här är en uppdelning av stegen:
1. Uppdelning av dataset:
Datasetet delas in i "k" lika stora delmängder eller foldar. Om du t.ex. har 1 000 prover och väljer "k" som 5, kommer varje fold att innehålla 200 prover.
2. Iterativ utbildning och utvärdering:
Modellen tränas "k" gånger. I varje iteration används en annan vikning som valideringsuppsättning och de återstående vikningarna används för träning. Exempel:
-
Iteration 1: Fold 1 som validering, Folds 2 till k för träning
-
Iteration 2: Fold 2 som validering, Folds 1 och 3 till k för träning
-
Iteration 3: Fold 3 som validering, Folds 1 och 2, och 4 till k för träning
-
... och så vidare tills alla vikningar har använts som en valideringsuppsättning.
3. Utvärdering av prestationer:
Efter varje iteration utvärderas modellens prestanda med hjälp av ett valt mått ( t.ex. noggrannhet, precision, recall, etc.) på valideringsuppsättningen. Prestationsmåtten från varje iteration beräknas i genomsnitt eller kombineras för att ge en övergripande uppskattning av modellens prestanda.
4. Aggregering av mätvärden:
Prestandamåtten (e.g. noggrannhetspoäng) från varje iteration är i genomsnitt eller kombineras för att ge en övergripande bedömning av modellens prestanda. Detta aggregerade mått representerar modellens förväntade prestanda på osedda data.
Fördelar med K-fold korsvalidering jämfört med en enkel uppdelning mellan träning och test
-
Bättre användning av data: K-fold korsvalidering utnyttjar tillgängliga data bättre eftersom varje prov används för både träning och validering.
-
Minskad varians i uppskattningen av prestanda: Det ger en mer tillförlitlig uppskattning av modellens prestanda genom att minska variansen som är förknippad med en enda tåg / testuppdelning.
-
Generalisering: Det hjälper till att förstå hur modellen fungerar på olika delmängder av data, och därmed bedöma dess generaliseringsförmåga.
Val av värde för "k
-
Högre "k"-värden: Om man använder ett högre "k"-värde ( t.ex. 10 eller fler) resulterar det i mindre valideringsuppsättningar, vilket kan leda till mindre bias i prestandaberäkningen men högre beräkningskostnader.
-
Lägre "k"-värden: Att använda ett lägre 'k'-värde ( t.ex. 3 eller 5) minskar beräkningskostnaderna men kan leda till en större bias i prestandaberäkningen på grund av mindre valideringsuppsättningar.
I praktiska scenarier
-
För stora datamängder kan högre "k"-värden vara beräkningsmässigt kostsamma.
-
När datasetet är litet kanske en högre "k" inte ger tillräckligt med data i varje vik för robust modellutbildning.
-
I allmänhet används värden som 5 eller 10 eftersom de skapar en balans mellan beräkningseffektivitet och tillförlitlig uppskattning av prestanda.