Hvorfor bruger forskere 10 gange krydsvalidering i stedet for at teste på et valideringssæt?
On november 30, 2020 by adminJeg har læst mange forskningsopgaver om klassificering af sentimenter og relaterede emner.
De fleste af dem bruger 10 gange krydsvalidering til at træne og teste klassifikatorer. Det betyder, at der ikke foretages separat test / validering. Hvorfor det?
Hvad er fordelene / ulemperne ved denne tilgang, især for dem der forsker?
Kommentarer
- Er du sikker på nej blev der foretaget separat test?
- +1. Jeg har bemærket det samme. Mange gange er den 10 gange krydsvalidering det endelige resultat, der rapporteres.
Svar
Dette er ikke et problem, hvis CVet er indlejret , dvs. alle optimeringer, funktionsvalg og modelvalg, uanset om de selv bruger CV eller ej, er indpakket i et stort CV.
Hvordan sammenlignes dette med at have et ekstra valideringssæt? Mens valideringssættet normalt kun er en mere eller mindre tilfældigt valgt del af hele dataene, svarer det simpelthen til en iteration af CV. Til dette formål er det faktisk en værre metode, fordi den let kan forudindtages af (forhåbentlig) heldigvis / uheldig valgt eller kirsebærplukket valideringssæt.
Den eneste undtagelse til dette er tidsserier og andre data, hvor objektordren betyder noget; men de kræver særlig behandling på begge måder.
Svar
Hovedårsagen er, at k-fold-krydsvalideringsestimatoren har en lavere varians end en enkelt hold-out sæt estimator, hvilket kan være meget vigtigt, hvis mængden af tilgængelige data er begrænset. Hvis du har et enkelt hold-out-sæt, hvor 90% af dataene bruges til træning og 10% bruges til testning, er testsættet meget lille, så der vil være stor variation i præstationsestimatet for forskellige dataprøver, eller for forskellige partitioner af dataene til dannelse af træning og testsæt. validering af k-fold reducerer denne varians ved at beregne et gennemsnit over k forskellige partitioner, så præstationsestimatet er mindre følsomt for partitioneringen af dataene. Du kan gå endnu længere ved gentagen k-fold krydsvalidering, hvor krydsvalidering udføres ved hjælp af forskellige partitioner af dataene til at danne k-undersæt og derefter tage gennemsnittet over det også.
Bemærk dog, at alle trin i modeltilpasningsproceduren (modelvalg, funktionsvalg osv.) Skal udføres uafhængigt i hver fold af krydsvalideringsproceduren, ellers vil det resulterende præstationsestimat være optimistisk forspændt. div>
Svar
[REDIGERET i lyset af kommentaren]
Jeg synes, der er et problem, hvis du bruger CV-resultater til at vælge blandt flere modeller.
CV giver dig mulighed for at bruge hele datasættet til at træne og teste en model / metode, mens du er i stand til at have en rimelig idé om, hvor godt det vil generalisere. Men hvis du sammenligner flere modeller, er mit instinkt, at modellesammenligningen bruger det ekstra niveau af togtestisolering, som CV giver dig, så det endelige resultat vil ikke være et rimeligt skøn over den valgte nøjagtighed. / p>
Så jeg gætter på, at hvis du opretter flere modeller og vælger en baseret på dens CV, er du alt for optimistisk med hensyn til, hvad du har fundet. Et andet valideringssæt ville være nødvendigt for at se, hvor godt vinder generaliserer.
Kommentarer
- Tak. Det er rigtigt. Men mit spørgsmål handlede især om, hvorfor forskningsopgaver mangler en endelig validering? Er der en korrekt grund? Er det ved at færre data, eller fordi CVet fungerer godt, og en separat validering er ikke ' t nødvendigt?
- Metoden til datadeling er meget Indtil både træning og testsæt er enorme, er den gennemsnitlige kvadratiske fejl for et skøn over sandsynlig fremtidig ydeevne for en forudsigende model mindre med bootstrapping eller wit h 100 gentagelser af 10 gange krydsvalidering, forudsat at resamplingprocedurerne havde adgang til alle modelleringstrin, der involverede $ Y $. Brug opdeling af data, når du også har brug for at validere måleprocessen, kortlægningsinstrumentet eller andre procedurer relateret til dataenes betydning. En god brug af datadeling er, når instrumentering varierer fra land til land.
Svar
-
Efter min erfaring er hovedårsagen normalt, at du ikke har nok prøver.
I mit felt (klassificering af biologiske / medicinske prøver) holdes nogle gange et testsæt adskilt, men ofte omfatter det kun få tilfælde. at tilfælde af tillidsintervaller normalt er for brede til at være til nogen nytte. -
En anden fordel ved gentagen / itereret krydsvalidering eller validering uden for bootstrap er, at du bygger en masse “surrogat” -modeller. Disse antages at være ens. Hvis de ikke er det, er tilstande ustabile.Du kan faktisk måle denne ustabilitet (med hensyn til at udveksle et par træningssager) ved at sammenligne enten surrogatmodellerne selv eller de forudsigelser, som forskellige surrogatmodeller giver for den samme sag.
-
Dette papir af Esbensen & Geladi giver en god diskussion af nogle begrænsninger i krydsvalidering.
Du kan passe på af de fleste af dem, men et vigtigt punkt, der ikke kan tackles ved at samplere validering er drift, som er relateret til mbq “s punkt:Den eneste undtagelse til dette er tidsserier og andre data, hvor objektordren betyder noget
Drift betyder, at f.eks. et instruments svar / ægte kalibrering ændrer sig langsomt over tid. Så generaliseringsfejlen for ukendte tilfælde er muligvis ikke den samme som for ukendte fremtidige tilfælde. Du kommer til instruktioner som “gentag kalibrering dagligt / ugentligt / …”, hvis du finder drift under validering, men dette har brug for testsæt, der systematisk er erhvervet senere end træningsdataene.
(Du kan udføre “specielle” opdelinger, der tager konto erhvervelsestid, hvis dit eksperiment er planlagt akkompagnerende, men normalt dækker dette ikke så meget tid, som du ikke vil teste for driftafvisning)
Svar
Hvorfor skal vi foretage krydsvalidering i stedet for at bruge separat valideringssæt?
Aurélien Géron taler om dette i hans bog
For at undgå “at spilde” for meget træningsdata i valideringssæt er en almindelig teknik at bruge krydsvalidering.
Hvorfor foretrækker vi måske at bruge k = 10 i krydsvalidering i stedet for andre k-værdier?
For at svare på er først en tak til Jason Brownlee, PhD for hans fantastiske tutorial på k-fold krydsvalidering. Jeg citerer en af hans citerede bog.
Kuhn & Johnson talte om valget af k-værdi i deres bog .
Valget af k er normalt 5 eller 10, men der er ingen formel regel. Efterhånden som k bliver større, bliver forskellen i størrelse mellem træningssættet og undersamplingsundersætningen mindre. Efterhånden som denne forskel aftager, bliver bias af teknikken mindre (dvs. bias er mindre for k = 10 end k = 5 ). I denne sammenhæng er bias forskellen mellem de anslåede og sande værdier for ydeevne
Så kan man sige, at hvorfor vi ikke bruger leave-one -out krydsvalidering (LOOCV), da k-værdien er maksimal der, og dermed vil bias være mindst der. I den bog har de også talt om, hvorfor vi foretrækker 10 gange CV i stedet for at foretrække LOOCV.
Fra et praktisk synspunkt er større værdier af k mere beregningsmæssigt besværligt. I ekstrem grad beskatter LOOCV mest beregningsmæssigt, fordi det kræver så mange modelpasninger som datapunkter, og hver modeltilpasning bruger et undersæt, der er næsten samme størrelse som træningssættet. Molinaro (2005) fandt, at leave-one-out og k = 10 gange krydsvalidering gav lignende resultater, hvilket indikerer, at k = 10 er mere attraktivt fra perspektivet af beregningseffektivitet. Også små værdier på k, siger 2 eller 3, har høj bias, men er meget beregningseffektive.
Jeg har læst mange forskningsopgaver om klassificering af følelser og relaterede emner. De fleste af dem bruger 10 gange krydsvalidering til at træne og teste klassifikatorer. Det betyder, at der ikke foretages separat test / validering. Hvorfor er det?
Hvis vi ikke bruger krydsvalidering (CV) til at vælge en af de flere modeller (eller vi ikke bruger CV for at indstille hyperparametrene) , vi behøver ikke lave en separat test. Årsagen er, at formålet med at udføre separat test opnås her i CV (ved en af k-foldene i hver iteration). Forskellige SE-tråde har talt meget om dette. Du kan kontrollere det.
I slutningen er du velkommen til at spørge mig, hvis noget jeg har skrevet ikke er klart for dig.
Skriv et svar