Een eenvoudige handleiding voor kruisvalidatie met k-vouwen


Om de prestaties van een model op een dataset te evalueren, moeten we meten hoe goed de voorspellingen van het model overeenkomen met de waargenomen gegevens.

De meest gebruikelijke manier om dit te meten is met behulp van de gemiddelde kwadratische fout (MSE), die als volgt wordt berekend:

MSE = (1/n)*Σ(y i – f(x i )) 2

Goud:

  • n: totaal aantal waarnemingen
  • y i : De responswaarde van de i-de waarneming
  • f( xi ): De voorspelde responswaarde van de i- de waarneming

Hoe dichter de modelvoorspellingen bij de waarnemingen liggen, hoe lager de MSE zal zijn.

In de praktijk gebruiken we het volgende proces om de MSE van een bepaald model te berekenen:

1. Verdeel een dataset in een trainingsset en een testset.

2. Maak het model met alleen de gegevens uit de trainingsset.

3. Gebruik het model om voorspellingen te doen over de testset en de MSE van de test te meten.

MSE-testen geven ons een idee van hoe goed een model presteert op gegevens die het nog niet eerder heeft gezien. Het nadeel van het gebruik van één enkele testset is echter dat de MSE-test aanzienlijk kan variëren, afhankelijk van de observaties die in de trainings- en testsets worden gebruikt.

Eén manier om dit probleem te voorkomen, is door een model meerdere keren te passen, waarbij elke keer een andere trainings- en testset wordt gebruikt, en vervolgens de test-MSE te berekenen als het gemiddelde van alle test-MSE’s.

Deze algemene methode staat bekend als kruisvalidatie en een specifieke vorm ervan staat bekend als k-voudige kruisvalidatie .

K-voudige kruisvalidatie

Bij K-voudige kruisvalidatie wordt de volgende aanpak gebruikt om een model te evalueren:

Stap 1: Verdeel een dataset willekeurig in k groepen, of ‘vouwen’, van ongeveer gelijke grootte.

Splits een dataset in k-vouwen

Stap 2: Kies een van de vouwen als uw holdingset. Pas de sjabloon aan de resterende k-1-vouwen aan. Bereken de MSE-proef op de waarnemingen in de gespannen lamel.

k-voudige kruisvalidatie

Stap 3: Herhaal dit proces k keer, telkens met een andere set als uitsluitingsset.

Voorbeeld van k-voudige kruisvalidatie

Stap 4: Bereken de totale MSE van de test als het gemiddelde van de k MSE’s van de test.

Test MSE = (1/k)*ΣMSE i

Goud:

  • k: Aantal vouwen
  • MSE i : Test MSE bij de i-de iteratie

Hoe K te kiezen

Over het algemeen geldt dat hoe meer vouwen we gebruiken bij k-voudige kruisvalidatie, hoe lager de MSE-testbias, maar hoe hoger de variantie. Omgekeerd geldt: hoe minder vouwen we gebruiken, hoe groter de bias, maar hoe lager de variantie. Dit is een klassiek voorbeeld van de afweging tussen bias en variantie bij machinaal leren.

In de praktijk kiezen wij er doorgaans voor om tussen de 5 en 10 lagen te gebruiken. Zoals opgemerkt in An Introduction to Statistical Learning , is aangetoond dat dit aantal vouwen een optimaal evenwicht biedt tussen bias en variantie en dus betrouwbare schattingen oplevert van de MSE van de test:

Samenvattend: er is een afweging tussen bias en variantie verbonden aan de keuze van k bij k-voudige kruisvalidatie.

Gezien deze overwegingen voert men doorgaans k-voudige kruisvalidatie uit met behulp van k = 5 of k = 10, aangezien empirisch is aangetoond dat deze waarden schattingen van het testfoutpercentage opleveren die noch te hoge bias, noch een zeer hoge variantie vertonen.

-Pagina 184, Een inleiding tot statistisch leren

Voordelen van K-Fold kruisvalidatie

Wanneer we een dataset opsplitsen in een enkele trainingsset en een enkele testset, kan de test-MSE die wordt berekend op basis van de observaties in de testset aanzienlijk variëren, afhankelijk van de observaties die in de trainings- en testsets worden gebruikt.

Met behulp van k-voudige kruisvalidatie kunnen we de MSE-test berekenen met behulp van verschillende variaties van trainings- en testsets. Dit geeft ons een veel grotere kans op het verkrijgen van een onbevooroordeelde schatting van de MSE van de test.

K-voudige kruisvalidatie biedt ook een rekenvoordeel ten opzichte van Leave-One-Out Cross-Validation (LOOCV), omdat het slechts k keer in een model hoeft te passen in plaats van n keer.

Voor modellen die veel tijd nodig hebben om te passen, kan k-voudige kruisvalidatie de test-MSE veel sneller berekenen dan LOOCV en in veel gevallen zal de test-MSE die door elke benadering wordt berekend behoorlijk vergelijkbaar zijn als je een voldoende aantal vouwen gebruikt.

K-vouw kruisvalidatie-extensies

Er zijn verschillende uitbreidingen van k-voudige kruisvalidatie, waaronder:

Herhaalde k-voudige kruisvalidatie: hier wordt k-voudige kruisvalidatie eenvoudigweg n keer herhaald. Wanneer de trainings- en testsets gemengd zijn, vermindert dit de vertekening in de test-MSE-schatting verder, hoewel dit langer duurt dan gewone k-voudige kruisvalidatie.

Leave-One-Out kruisvalidatie: Dit is een speciaal geval van k-voudige kruisvalidatie waarbij k = n . Meer over deze methode kunt u hier lezen.

Gestratificeerde k-voudige kruisvalidatie: Dit is een versie van k-voudige kruisvalidatie waarbij de dataset zodanig wordt herschikt dat elke vouw representatief is voor het geheel. Zoals opgemerkt door Kohavi , biedt deze methode doorgaans een betere afweging tussen bias en variantie in vergelijking met gewone k-voudige kruisvalidatie.

Geneste kruisvalidatie: hier wordt k-voudige kruisvalidatie uitgevoerd in elke kruisvalidatievouw. Dit wordt vaak gebruikt om hyperparameterafstemming uit te voeren tijdens modelevaluatie.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert