Varför använder forskare tiofaldig korsvalidering istället för att testa en valideringsuppsättning?
On november 30, 2020 by adminJag har läst en hel del forskningsdokument om sentimentklassificering och relaterade ämnen.
De flesta av dem använder 10-faldig korsvalidering för att träna och testa klassificerare. Det betyder att ingen separat testning / validering görs. Varför är det så?
Vilka är fördelarna / nackdelarna med detta tillvägagångssätt, särskilt för dem som forskar?
Kommentarer
- Är du säker på att nej separata tester gjordes?
- +1. Jag har märkt samma sak. Många gånger är det tiofaldiga korsvalideringen det slutliga resultatet som rapporteras.
Svar
Detta är inte ett problem om CV är kapslat , dvs. alla optimeringar, funktionsval och modellval, oavsett om de själva använder CV eller inte, är inslagna i ett stort CV.
Hur jämförs det med att ha en extra valideringsuppsättning? Medan valideringsuppsättningen vanligtvis bara är en mer eller mindre slumpmässigt vald del av hela data, motsvarar det helt enkelt en iteration av CV. För detta ändamål är det faktiskt en sämre metod eftersom den lätt kan förspännas av (förhoppningsvis) lyckligt / olyckligt valt eller körsbärsplockad valideringsuppsättning.
Det enda undantaget från detta är tidsserier och andra data där objektbeställningen är viktig; men de kräver speciell behandling åt båda hållen.
Svar
Huvudskälet är att k-korsvalideringsberäknaren har en lägre varians än en enda uppskattningsuppskattning, vilket kan vara mycket viktigt om mängden tillgänglig data är begränsad. Om du har en enda uppsättning, där 90% av data används för träning och 10% används för testning, är testuppsättningen väldigt liten, så det kommer att variera mycket i prestationsuppskattningen för olika dataprover, eller för olika partitioner av data för att bilda träning och testuppsättningar. validering av k-fald minskar denna avvikelse genom att medelvärde över k olika partitioner, så prestationsuppskattningen är mindre känslig för partitionering av data. Du kan gå ännu längre genom upprepad k-korsvalidering, där korsvalideringen utförs med hjälp av olika partitioneringar av data för att bilda k-underuppsättningar, och sedan ta genomsnittet över det också.
Observera dock att alla steg i proceduren för modellanpassning (modellval, funktionsval etc.) måste utföras oberoende i varje veck i korsvalideringsproceduren, annars blir den uppskattade prestationsuppskattningen optimistisk förspänd.
Svar
[REDIGERAD mot bakgrund av kommentaren]
Jag tror att det är ett problem om du använder CV-resultat för att välja bland flera modeller.
CV låter dig använda hela datasetet för att träna och testa en modell / metod, samtidigt som du kan ha en rimlig uppfattning om hur väl den kommer att generaliseras. Men om du jämför flera modeller, är min instinkt att modelljämförelsen använder den extra nivån av tågtestisolering som CV ger dig, så det slutliga resultatet blir inte en rimlig uppskattning av den valda modellens noggrannhet.
Så jag antar att om du skapar flera modeller och väljer en baserat på dess CV, är du alltför optimistisk om vad du har hittat. En annan valideringsuppsättning behövs för att se hur bra vinnaren generaliserar.
Kommentarer
- Tack. Det stämmer. Men min fråga handlade särskilt om varför forskningshandlingar saknar en slutgiltig validering? Finns det en rätt skäl? Är det på väg att få mindre data eller för att CV: n fungerar bra och en separat validering inte ’ t behövs?
- Metoden för datadelning är mycket Innan både träning och testuppsättningar är enorma är det genomsnittliga kvadratfelet för en uppskattning av sannolikt framtida prestanda för en prediktiv modell mindre med bootstrapping eller wit h 100 upprepningar av 10-faldig korsvalidering, förutsatt att omprovningsförfarandena hade tillgång till alla modelleringssteg som involverade $ Y $. Använd datadelning när du också behöver validera mätprocessen, mätinstrumentet eller andra procedurer relaterade till betydelsen av data. En bra användning av datasplittring är när instrumentering varierar beroende på land.
Svar
-
Enligt min erfarenhet är det främsta skälet vanligtvis att du inte har tillräckligt med prover.
I mitt område (klassificering av biologiska / medicinska prover) hålls ibland en testuppsättning separat, men ofta innehåller den bara få fall. att fallförtroendeintervaller vanligtvis är för breda för att vara till någon nytta. -
En annan fördel med upprepad / itererad korsvalidering eller validering utanför bootstrap är att du bygger en massa ”surrogatmodeller”. Dessa antas vara lika. Om de inte är det, är lägena instabila.Du kan faktiskt mäta denna instabilitet (när det gäller att utbyta några träningsfall) genom att jämföra antingen surrogatmodellerna själva eller de förutsägelser som olika surrogatmodeller gör för samma fall.
-
Denna uppsats av Esbensen & Geladi ger en trevlig diskussion om några begränsningar av korsvalidering.
Du kan vara försiktig av de flesta av dem, men en viktig punkt som inte kan hanteras genom omprövning av validering är drift, som är relaterad till mbq ”s punkt:Det enda undantaget till detta är tidsserier och andra data där objektordningen betyder något
Drift betyder att t.ex. ett instruments svar / sann kalibrering förändras långsamt över tiden. Så generaliseringsfelet för okända fall kanske inte är detsamma som för okända framtida fall. Du kommer fram till instruktioner som ”gör om kalibrering dagligen / veckovis / …” om du hittar drift under valideringen, men detta behöver testuppsättningar systematiskt förvärvade senare än träningsdata.
(Du kan göra ”speciella” delar som tar in tid för kontoinhämtning, om ditt experiment är planerat enligt överensstämmelse, men vanligtvis täcker det inte så mycket tid som du vill testa för driftavkänning. > SvarVarför ska vi göra korsvalidering istället för att använda en separat valideringsuppsättning?
Aurélien Géron talar om detta i hans bok
För att undvika att ”slösa bort” för mycket träningsdata i valideringsuppsättningar är en vanlig teknik att använda korsvalidering.
I stället för andra k-värden, varför kanske vi föredrar att använda k = 10 i korsvalidering?
För att svara på till att börja med vill jag tacka Jason Brownlee, PhD för hans fantastiska handledning på k-kors-validering. Jag citerar en av hans citerade bok.
Kuhn & Johnson talade om valet av k-värde i sin bok .
Valet av k är vanligtvis 5 eller 10, men det finns ingen formell regel. När k blir större blir skillnaden i storlek mellan träningsuppsättningen och omsamplingsundersättningarna mindre. När denna skillnad minskar blir teknikens förspänning mindre (dvs. förspänningen är mindre för k = 10 än k = 5 ). I detta sammanhang är förspänningen skillnaden mellan de uppskattade och verkliga värdena för prestanda
Då kan man säga att varför vi inte använder leave-one -out cross-validation (LOOCV) eftersom k-värdet är maximalt där och därmed kommer bias att vara minst där. I den boken har de också pratat varför vi kan föredra tiofaldigt CV istället för att föredra LOOCV.
Ur praktisk synvinkel är större värden på k mer beräkningsmässigt betungande. I yttersta grad beskattar LOOCV mest beräkningsberoende eftersom det kräver så många modellpassningar som datapunkter och varje modellpassning använder en delmängd som är nästan lika stor som träningsuppsättningen. Molinaro (2005) fann att leave-one-out och k = 10-faldig korsvalidering gav liknande resultat, vilket indikerar att k = 10 är mer attraktivt ur perspektivet av beräkningseffektivitet. Även små värden på k, säg 2 eller 3, har höga förspänningar men är mycket beräkningseffektiva.
Jag har läst många forskningsdokument om sentimentklassificering och relaterade ämnen. De flesta av dem använder 10-faldig korsvalidering för att träna och testa klassificerare. Det betyder att ingen separat testning / validering görs. Varför är det?
Om vi inte använder korsvalidering (CV) för att välja en av de flera modellerna (eller om vi inte använder CV för att ställa in hyperparametrarna) , vi behöver inte göra ett separat test. Anledningen är att syftet med att göra ett separat test uppnås här i CV (av en av k-veckningarna i varje iteration). Olika SE-trådar har pratat mycket om detta. Du kan kolla.
I slutet kan du fråga mig om något jag har skrivit inte är klart för dig.
Lämna ett svar