Vraag:
Kruisvalidatie in gewoon Engels?
Shane
2010-08-18 18:11:19 UTC
view on stackexchange narkive permalink

Hoe zou u kruisvalidatie beschrijven voor iemand zonder achtergrond in gegevensanalyse?

Deze vraag is bedoeld om te helpen bij eventuele verwarring over het voorstel voor de sitenaam: http://meta.stats.stackexchange.com/questions/21/what-should-our-site-be-called-what-should-our-domain- naam-be / 53 # 53.
Vijf antwoorden:
#1
+57
user28
2010-08-18 18:38:30 UTC
view on stackexchange narkive permalink

Beschouw de volgende situatie:

Ik wil de metro nemen om naar mijn kantoor te gaan. Mijn plan is om mijn auto te nemen, te parkeren bij de metro en dan de trein te nemen om naar mijn kantoor te gaan. Mijn doel is om elke dag om 8.15 uur de trein te halen zodat ik op tijd op kantoor kan zijn. Ik moet het volgende beslissen: (a) het tijdstip waarop ik van huis moet vertrekken en (b) de route die ik zal nemen om naar het station te rijden.

In het bovenstaande Ik heb bijvoorbeeld twee parameters (dwz vertrektijd van huis en route naar het station) en ik moet deze parameters zo kiezen dat ik het station om 8.15 uur bereik.

Om het bovenstaande probleem op te lossen, kan ik op maandag, woensdag en vrijdag verschillende sets 'parameters' uitproberen (dwz verschillende combinaties van vertrektijden en route) om te zien welke combinatie de 'beste. Het idee is dat als ik eenmaal de beste combinatie heb gevonden, ik deze elke dag kan gebruiken om mijn doel te bereiken.

Probleem van overfitting

Het probleem met de bovenstaande benadering is dat ik overfit kan zijn, wat in wezen betekent dat de beste combinatie die ik identificeer in zekere zin uniek kan zijn voor maandag, woensdag en vrijdag en dat die combinatie mogelijk niet werkt voor di en do. Overfitting kan voorkomen als ik bij mijn zoektocht naar de beste combinatie van tijden en routes gebruik maak van een aspect van de verkeerssituatie op ma / wo / vr dat niet voorkomt op di en do.

Eén oplossing naar overfitting: kruisvalidatie

kruisvalidatie is een oplossing voor overfitting. Het idee is dat zodra we onze beste combinatie van parameters hebben geïdentificeerd (in ons geval tijd en route), we de prestaties van die set parameters in een andere context testen. Daarom willen we misschien ook testen op di en do om er zeker van te zijn dat onze keuzes ook voor die dagen werken.

De analogie uitbreiden naar statistieken

In statistieken hebben we een soortgelijk probleem. We gebruiken vaak een beperkte set gegevens om de onbekende parameters te schatten die we niet kennen. Als we overfit zijn, zullen onze parameterschattingen heel goed werken voor de bestaande gegevens, maar niet zo goed voor wanneer we ze in een andere context gebruiken. Kruisvalidatie helpt dus bij het vermijden van het bovenstaande probleem van overfitting door ons enige geruststelling te geven dat de parameterschattingen niet uniek zijn voor de gegevens die we hebben gebruikt om ze te schatten.

Natuurlijk is kruisvalidatie niet perfect. Terugkomend op ons voorbeeld van de metro, kan het gebeuren dat zelfs na kruisvalidatie onze beste parameterkeuze een maand later niet werkt vanwege verschillende problemen (bijv. Constructie, veranderingen in verkeersvolume in de loop van de tijd, enz.). / p>

Technisch gezien is dit holdout-validatie, maar men kan zich voorstellen dat het voorbeeld van de metro wordt uitgebreid naar een kruisvalidatiecontext. Als het helpt, zal ik het voorbeeld en de rest van de tekst herschrijven om specifiek te zijn voor kruisvalidatie.
@srikant..het woord overfitting als een woord suggereert me dat er iets "overdreven" is gedaan, wat betekent dat ..meer dan vereist .. dus wat is overdreven gedaan? Zijn er geen variabelen? Het spijt me dat ik de term overmatig passen vaak heb gehoord en zou deze gelegenheid aangrijpen om dit met u op te lossen.
Ik denk dat dit antwoord verbeterd zou worden door het concept van folds toe te voegen, wat de sleutel is tot hoe CV verschilt van holdout-testen.In het voorbeeld (met afkorting M voor maandag, T voor dinsdag, ..., R voor donderdag, ...): Dus je kijkt naar TWRF voor de beste combinatie en ziet hoe dat werkt op M, dan MWRF en kijk hoe het werktwerkt op T, etc. Elke dag wordt dus vier keer als onderdeel van het probleem gebruikt en één keer als controle van het probleem, maar nooit als probleem en controle in dezelfde ronde.
#2
+44
Shane
2010-08-18 18:20:29 UTC
view on stackexchange narkive permalink

Ik denk dat dit het beste kan worden beschreven met de volgende afbeelding (in dit geval met k-fold kruisvalidatie):

alt text

Kruisvalidatie is een techniek die wordt gebruikt om te beschermen tegen overfitting in een voorspellend model, met name in gevallen waarin de hoeveelheid gegevens mogelijk beperkt is. Bij kruisvalidatie maakt u een vast aantal vouwen (of partities) van de gegevens, voert u de analyse uit op elke vouw en neemt u het gemiddelde van de algehele foutschatting.

Het lijkt erop dat elders op deze site discussies hebben gekregen dat k-voudige kruisvalidatie slechts één type kruisvalidatie is en dat het beschrijven ervan niet de algemene taak is om te beschrijven wat kruisvalidatie is.
@drknexus: Dat is eerlijk, maar ik vermeld dat het k-vouw is en ik wilde een visualisatie van het proces geven om het uit te leggen.
Snelle verduidelijking: is het zo dat nfold = 4 25% betekent voor testset;nfold = 5 betekent 20% voor testset;nfold = 10 betekent 10% voor testset, enzovoort: nfold = n betekent dat 100 / n procent in de testset gaat?
#3
+10
Andre Holzner
2010-08-19 00:09:38 UTC
view on stackexchange narkive permalink

"Voorkom dat u uw trainingsgegevens uit het hoofd leert door ervoor te zorgen dat het getrainde model goed presteert op basis van onafhankelijke gegevens."

Dit is een motivatie voor cv, niet een beschrijving van cv zelf.
#4
+6
user88
2010-08-18 20:14:02 UTC
view on stackexchange narkive permalink

Laten we zeggen dat je een proces onderzoekt; je hebt wat gegevens verzameld die het beschrijven en je hebt een model gebouwd (statistisch of ML, maakt niet uit). Maar nu, hoe te beoordelen of het in orde is? Waarschijnlijk past het verdacht goed bij de gegevens waarop het is gebouwd, dus niemand zal geloven dat uw model zo prachtig is dat u denkt.
Het eerste idee is om een ​​subset van uw gegevens te scheiden en deze te gebruiken om de modelbouw te testen door uw methode op de rest van de gegevens. Nu is het resultaat absoluut overfitting-vrij, maar toch (vooral voor kleine sets) had je (on) geluk kunnen hebben en (minder) eenvoudigere cases kunnen tekenen om te testen, waardoor het (moeilijker) gemakkelijker te voorspellen is ... Ook je nauwkeurigheid / fout / goedheidschatting is nutteloos voor modelvergelijking / optimalisatie, aangezien u waarschijnlijk niets weet over de distributie ervan.
Gebruik bij twijfel brute kracht, dus herhaal gewoon het bovenstaande proces, verzamel enkele schattingen van nauwkeurigheid / fout / goedheid en gemiddelde ze - en zo verkrijgt u kruisvalidatie. Naast een betere schatting krijgt u ook een histogram, zodat u de distributie kunt benaderen of een aantal niet-parametrische tests kunt uitvoeren.
En dit is het; de details van het splitsen van de testtrein zijn de reden voor verschillende CV-typen, maar behalve in zeldzame gevallen en kleine sterkteverschillen zijn ze redelijk gelijkwaardig. Het is inderdaad een enorm voordeel, want het maakt het een kogelvrij-eerlijke methode; het is erg moeilijk om het te bedriegen.

#5
+3
ebony1
2010-08-20 02:50:48 UTC
view on stackexchange narkive permalink

Aangezien u op het moment van de training geen toegang heeft tot de testgegevens en u wilt dat uw model het goed doet met de ongeziene testgegevens, 'doet u alsof' u toegang heeft tot bepaalde testgegevens door herhaaldelijk een subsampling te nemen een klein deel van uw trainingsgegevens, houd deze set vast terwijl u het model traint, en behandel de vastgehouden set vervolgens als een proxy voor de testgegevens (en kies modelparameters die de beste prestaties leveren op de vastgehouden gegevens). Je hoopt dat door willekeurig verschillende subsets uit de trainingsgegevens te bemonsteren, je ze eruit kunt laten zien als de testgegevens (in de zin van gemiddeld gedrag), en dat de geleerde modelparameters daarom ook goed zijn voor de testgegevens (dat wil zeggen, je model generaliseert goed voor ongeziene gegevens).



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
Loading...