Waarom gebruiken onderzoekers 10-voudige kruisvalidatie in plaats van testen op een validatieset?
Geplaatst op november 30, 2020 door adminIk heb veel research papers gelezen over sentimentclassificatie en aanverwante onderwerpen.
De meeste van hen gebruiken 10-voudige kruisvalidatie om classificatoren te trainen en te testen. Dat betekent dat er geen aparte testen / validatie plaatsvindt. Waarom is dat?
Wat zijn de voor- / nadelen van deze aanpak, vooral voor degenen die onderzoek doen?
Opmerkingen
- Weet je zeker dat nee afzonderlijke tests zijn uitgevoerd?
- +1. Ik heb hetzelfde opgemerkt. Vaak is de 10-voudige kruisvalidatie het gerapporteerde eindresultaat.
Antwoord
Dit is geen probleem als de CV genest is, dwz alle optimalisaties, feature selecties en modelselecties, of ze nu zelf CV gebruiken of niet, zijn verpakt in één groot cv.
Hoe verhoudt dit zich tot het hebben van een extra validatieset? Hoewel de validatieset meestal slechts een min of meer willekeurig geselecteerd deel van de volledige gegevens is, is het gewoon een equivalent van één iteratie van CV. Daartoe is het eigenlijk een slechtere methode omdat het gemakkelijk kan worden beïnvloed door (hopelijk) gelukkig / ongelukkig gekozen of door kers geplukte validatieset.
De enige uitzondering hierop zijn tijdreeksen en andere gegevens waar de bestelling van het object ertoe doet; maar ze vereisen hoe dan ook een speciale behandeling.
Antwoord
De belangrijkste reden is dat de k-voudige kruisvalidatieschatter een lagere variantie dan een enkele hold-out set schatter, wat erg belangrijk kan zijn als de hoeveelheid beschikbare data beperkt is. Als je een enkele hold-out-set hebt, waarbij 90% van de gegevens wordt gebruikt voor training en 10% voor testen, is de testset erg klein, dus er zal veel variatie zijn in de prestatieschatting voor verschillende gegevensmonsters, of voor verschillende partities van de gegevens om trainings- en testsets te vormen. k-voudige validatie vermindert deze variantie door middel van k verschillende partities, zodat de prestatieschatting minder gevoelig is voor het partitioneren van de gegevens. U kunt zelfs nog verder gaan door herhaalde k-voudige kruisvalidatie, waarbij de kruisvalidatie wordt uitgevoerd met behulp van verschillende partitioneringen van de gegevens om k subsets te vormen, en dan ook het gemiddelde daarover te nemen.
Merk echter op dat alle stappen van de modelaanpassingsprocedure (modelselectie, functieselectie enz.) Onafhankelijk moeten worden uitgevoerd in elke fase van de kruisvalidatieprocedure, anders zal de resulterende prestatie-inschatting optimistisch vertekend zijn.
Answer
[BEWERKT in het licht van de opmerking]
Ik denk dat er een probleem is als je CV-resultaten gebruikt om te kiezen uit meerdere modellen.
CV stelt je in staat om de volledige dataset te gebruiken om één model / methode te trainen en te testen, terwijl je een redelijk idee hebt van hoe goed het generaliseert. Maar als je “meerdere modellen vergelijkt, is mijn instinct dat de modelvergelijking het extra niveau van trein-testisolatie opgebruikt dat CV je geeft, dus het uiteindelijke resultaat zal geen redelijke schatting zijn van de nauwkeurigheid van het gekozen model. / p>
Dus ik “denk dat als je verschillende modellen maakt en er een kiest op basis van zijn CV, je overdreven optimistisch bent over wat je hebt gevonden. Er zou nog een validatieset nodig zijn om te zien hoe goed de winnaar generaliseert.
Opmerkingen
- Dankjewel. Dat klopt. Maar mijn vraag ging vooral over waarom onderzoeksdocumenten geen definitieve validatie hebben? Is er een juiste reden? Gaat het om minder gegevens of omdat het cv goed werk doet en een aparte validatie niet ‘ t nodig is?
- De benadering van het splitsen van gegevens is sterk inefficiënt. Totdat zowel de training als de testsets enorm zijn, is de gemiddelde kwadratische fout voor een schatting van de waarschijnlijke toekomstige prestaties voor een voorspellend model kleiner met bootstrapping of wit h 100 herhalingen van 10-voudige kruisvalidatie, ervan uitgaande dat de resampling-procedures toegang hadden tot alle modelleringsstappen waarbij $ Y $ betrokken was. Gebruik gegevenssplitsing wanneer u ook het meetproces, het onderzoeksinstrument of andere procedures met betrekking tot de betekenis van de gegevens moet valideren. Een goed gebruik van gegevenssplitsing is wanneer instrumenten per land verschillen.
Answer
-
In mijn ervaring is de belangrijkste reden meestal dat je niet genoeg monsters hebt.
In mijn vakgebied (classificatie van biologische / medische monsters) wordt soms een testset apart gehouden, maar vaak omvat deze slechts enkele gevallen. de betrouwbaarheidsintervallen van die gevallen zijn meestal te breed om van enig nut te zijn. -
Een ander voordeel van herhaalde / iteratieve kruisvalidatie of out-of-bootstrap-validatie is dat je een heleboel “surrogaat” -modellen. Er wordt aangenomen dat deze gelijk zijn. Als dat niet het geval is, zijn de modi onstabiel.Je kunt deze instabiliteit daadwerkelijk meten (met betrekking tot het uitwisselen van enkele trainingscases) door ofwel de surrogaatmodellen zelf te vergelijken of de voorspellingen die verschillende surrogaatmodellen doen voor dezelfde casus.
-
Dit artikel van Esbensen & Geladi geeft een mooie bespreking van enkele beperkingen van kruisvalidatie.
U kunt voorzichtig zijn van de meeste, maar een belangrijk punt dat niet kan worden aangepakt door validatie opnieuw te samplen, is drift, wat gerelateerd is aan het punt van mbq:De enige uitzondering Hierop zijn tijdreeksen en andere gegevens waar de objectvolgorde van belang is.
Drift betekent dat bijv. de respons van een instrument / echte kalibratie langzaam verandert in de tijd. De generalisatiefout voor onbekende gevallen is dus mogelijk niet dezelfde als voor onbekende toekomstige gevallen. U krijgt instructies zoals “kalibratie opnieuw uitvoeren dagelijks / wekelijks / …” als u tijdens de validatie drift constateert, maar hiervoor zijn testsets nodig die systematisch later zijn verzameld dan de trainingsgegevens.
(U kunt “speciale” splitsingen maken die rekening houden met accountacquisitietijd, als uw experiment volgens de planning is gepland, maar meestal niet zoveel tijd beslaat als u zou willen testen voor driftdetectie.
Antwoord
Waarom zouden we kruisvalidatie moeten doen in plaats van een aparte validatieset te gebruiken?
Aurélien Géron vertelt hierover in zijn boek
Om te voorkomen dat teveel trainingsgegevens in validatiesets worden “verspild”, is een veelgebruikte techniek om kruisvalidatie te gebruiken.
Waarom gebruiken we in plaats van andere k-waarden de voorkeur om k = 10 te gebruiken bij kruisvalidatie?
is, in eerste instantie, wil ik Jason Brownlee, PhD bedanken voor zijn geweldige tutorial op k-fold Cross-Validation. Ik citeer een van zijn geciteerde boeken.
Kuhn & Johnson sprak over de keuze van k-waarde in hun boek .
De keuze voor k is meestal 5 of 10, maar er is geen formele regel. Naarmate k groter wordt, wordt het verschil in grootte tussen de trainingsset en de resampling-subsets kleiner. Naarmate dit verschil kleiner wordt, wordt de bias van de techniek kleiner (d.w.z. de bias is kleiner voor k = 10 dan k = 5 ). In deze context is de bias het verschil tussen de geschatte en werkelijke prestatiewaarden
Dan zou je kunnen zeggen dat waarom we leave-one niet gebruiken -out kruisvalidatie (LOOCV) omdat k-waarde daar maximaal is en dus vertekening daar het minst. In dat boek hebben ze ook besproken waarom we de voorkeur kunnen geven aan 10-voudige CV in plaats van LOOCV.
Vanuit praktisch oogpunt zijn grotere waarden van k meer computationeel belastend. In het extreme geval is LOOCV het meest rekenkundig belastend omdat het evenveel modelpassingen vereist als datapunten en elke modelpassing een subset gebruikt die bijna even groot is als de trainingsset. Molinaro (2005) ontdekte dat weglaten-één-uit en k = 10-voudige kruisvalidatie vergelijkbare resultaten opleverden, wat aangeeft dat k = 10 meer is aantrekkelijk vanuit het perspectief van computerefficiëntie. Ook kleine waarden van k, zeg 2 of 3, hebben een hoge bias, maar zijn zeer rekenkundig efficiënt.
Ik heb veel research papers gelezen over sentimentclassificatie en aanverwante onderwerpen. De meeste van hen gebruiken 10-voudige kruisvalidatie om classificatoren te trainen en te testen. Dat betekent dat er geen aparte testen / validatie plaatsvindt. Waarom is dat?
Als we geen kruisvalidatie (CV) gebruiken om een van de meerdere modellen te selecteren (of we gebruiken geen CV om de hyperparameters af te stemmen) , hoeven we geen aparte test te doen. De reden is dat het doel van het doen van een afzonderlijke test hier in CV wordt bereikt (door een van de k-vouwen in elke iteratie). Verschillende SE-threads hebben hier veel over gepraat. U kunt het controleren.
Aan het einde, kunt u mij gerust vragen of iets dat ik heb geschreven u niet duidelijk is.
Geef een reactie