Evaluatiegegevens en kruisvalidatie
Een van de grootste uitdagingen in voorspellende analyses is om te weten hoe een getraind model zal presteren met gegevens die het model nog niet eerder heeft gezien. Om het anders te stellen: hoe goed het model de ware patronen heeft geleerd versus gewoon trainingsgegevens onthouden. Evaluatiegegevens en kruisvalidatie zijn effectieve technieken om ervoor te zorgen dat uw model gegevens niet alleen onthoudt, maar daadwerkelijk algemene patronen leert.
Bij het configureren van uw experiment kunt u kiezen of de trainingsgegevens en evaluatiegegevens willekeurig worden gesplitst of met een speciale methode die wordt gebruikt om tijdbewuste modellen te maken.
Modellen testen op herinneren versus generaliseren
Vragen hoe goed een model in het echte leven gaat werken, is eigenlijk vragen of het model gebeurtenissen onthoudt of generaliseert. Onthouden is het vermogen om perfect te herinneren wat er in het verleden is gebeurd. Een model dat gegevens onthoudt, heeft mogelijk hogere scores wanneer het aanvankelijk wordt getraind, maar de nauwkeurigheid van de voorspellingen zal drastisch dalen zodra het wordt toegepast op nieuwe gegevens. In plaats daarvan willen we een model dat generaliseert. Generalisatie is het vermogen om algemene patronen te leren en toe te passen. Door de werkelijke, bredere patronen te leren uit de trainingsgegevens, kan een generaliserend model voorspellingen doen die ook voor nieuwe gegevens die het nog niet eerder heeft gezien dezelfde kwaliteit hebben.
Automatische evaluatiegegevens
Evaluatiegegevens zijn gegevens die tijdens de training worden 'verborgen' van het model en vervolgens worden gebruikt om het model te scoren. Met de evaluatiegegevens wordt gesimuleerd hoe het model zal presteren bij toekomstige voorspellingen door nauwkeurigheidsstatistieken te genereren voor gegevens die niet zijn gebruikt voor training. Het is alsof we een model hebben opgezet, het hebben geïmplementeerd en de voorspellingen kunnen monitoren ten opzichte van wat er daadwerkelijk is gebeurd, zonder te hoeven wachten om die voorspellingen te observeren.
In Qlik AutoML zijn er twee methoden om de evaluatiegegevens te selecteren: de standaardmethode en de tijdgebaseerde methode.
Standaardmethode voor het selecteren van evaluatiegegevens
Tenzij u tijdbewuste modeltraining inschakelt, worden de evaluatiegegevens willekeurig geselecteerd voordat de modeltraining begint.
Tijdgebaseerde methode voor het selecteren van evaluatiegegevens
Met de tijdgebaseerde methode wordt de hele trainingsgegevensverzameling eerst gesorteerd op basis van een datumindexatiekolom die u selecteert. Na het sorteren worden de evaluatiegegevens gescheiden van de rest van de trainingsgegevens. Deze evaluatiegegevens bevatten de meest recente gegevens met betrekking tot de door u geselecteerde indexatie.
De tijdgebaseerde methode wordt gebruikt om tijdbewuste modellen te maken. U activeert tijdbewuste training onder Modeloptimalisatie in het venster Experimentconfiguratie. Ga voor meer informatie naar Experimenten configureren.
Kruisvalidatie
Kruisvalidatie is een proces waarbij wordt getest hoe goed een machine learning-model toekomstige waarden kan voorspellen voor gegevens die het nog niet heeft gezien. Bij kruisvalidatie worden de trainingsgegevens voor een model opgesplitst in een aantal segmenten, zogenaamde folds. Tijdens elke iteratie van de training wordt het model getraind op één of meer folds, waarbij altijd wordt voorkomen dat ten minste één van de folds wordt gebruikt voor training. Na elke iteratie worden de prestaties beoordeeld aan de hand van een van de folds die niet gebruikt werden in de training.
De uitkomst van de kruisvalidatie is een reeks teststatistieken die een redelijk idee bieden van hoe nauwkeurig het getrainde model voorspellingen kan doen voor gegevens die het nog niet eerder heeft gezien.
In Qlik AutoML zijn er twee methoden van kruisvalisatie: de standaardmethode en de tijdgebaseerde methode.
Standaard kruisvalidatie
Tenzij u de training configureert om tijdgebaseerde kruisvalidatie te gebruiken, gebruikt Qlik AutoML de standaardmethode van kruisvalidatie. De standaardmethode van kruisvalidatie is geschikt voor modellen die niet afhankelijk zijn van een tijdreeksdimensie - dat wil zeggen dat het model geen voorspellingen hoeft te doen op basis van een specifieke tijdkolom in de trainingsgegevens.
Bij de standaardmethode van kruisvalidatie wordt de gegevensverzameling willekeurig opgesplitst in een gelijk aantal segmenten. Dit zijn de 'folds'. Het machine learning-algoritme traint het model op alle folds op één na. Kruisvalidatie test vervolgens iedere fold ten opzichte van een model dat is getraind met alle overige folds. Dit betekent dat ieder getraind model wordt getest op een segment van de gegevens dat nog niet eerder is gezien. Het proces wordt herhaald met een andere fold die tijdens de training is verborgen. Vervolgens wordt er getest tot alle folds één keer als test en voor iedere iteratie voor training zijn gebruikt.
Automatische evaluatie en standaard kruisvalidatie
AutoML gebruikt standaard kruisvalidatie met vijf folds tijdens de training van het model om de prestaties van het model te simuleren. Het model wordt vervolgens opnieuw getest met een groep evaluatiegegevens die buiten de trainingsgegevens is gehouden. Dit genereert scorestatistieken waarmee u kunt evalueren en vergelijken om te zien hoe goed verschillende algoritmen presteren.
Voordat de training van uw experiment begint, worden alle gegevens in uw gegevensverzameling met een niet-null-doel willekeurig gehusseld. Twintig procent van uw gegevensverzameling wordt geëxtraheerd als trainingsgegevens. De resterende tachtig procent van de gegevensverzameling wordt gebruikt om het model te trainen met kruisvalidatie.
Ter voorbereiding op de kruisvalidatie wordt de gegevensverzameling verdeeld in vijf, willekeurige delen, genaamd folds. Het model wordt vervolgens vijf keer getraind, en elke keer wordt een ander vijfde deel van de gegevens 'verborgen' om te testen hoe het model presteert. Trainingsstatistieken worden gegenereerd gedurende de kruisvalidatie en zijn het gemiddelde van de berekende waarden.
Na de training wordt het model toegepast op de apart gehouden evaluatiegegevens. Het voordeel van evaluatiegegevens is dat deze tijdens de training niet door het model worden gezien (in tegenstelling tot kruisvalidatiegegevens), waardoor ze geschikt zijn voor het valideren van de prestaties van het model. Evaluatiegegevens worden gegenereerd tijdens deze laatste modelevaluatie.
Voor meer informatie over meetwaarden die worden gebruikt om de prestaties van het model te analyseren, raadpleegt u Modellen evalueren.
Tijdgebaseerde kruisvalidatie
Tijdgebaseerde kruisvalidatie is geschikt voor het trainen van uw model om gegevens te voorspellen langs een tijdreeksdimensie. U wilt bijvoorbeeld de verkoop van uw bedrijf voor de volgende maand voorspellen, op basis van een gegevensverzameling met verkoopgegevens uit het verleden. Om tijdgebaseerde kruisvalidatie te gebruiken, moet er een kolom in uw trainingsgegevens zijn die datum- of tijdstempelinformatie bevat.
Tijdgebaseerde kruisvalidatie wordt gebruikt om tijdbewuste modellen te maken. U activeert tijdbewuste training onder Modeloptimalisatie in het venster Experimentconfiguratie. Ga voor meer informatie naar Experimenten configureren.
Met tijdgebaseerde kruisvalidatie worden modellen getraind om beter te begrijpen dat ze gegevens voorspellen voor toekomstige datums.
Net als de standaardmethode houdt tijdgebaseerde kruisvalidatie in dat de trainingsgegevens worden verdeeld in folds die worden gebruikt voor zowel het trainen als het testen. In beide methoden worden modellen ook getraind binnen een aantal iteraties. De tijdgebaseerde methode verschilt echter op een aantal punten van de standaardmethode:
Trainingsgegevens worden gesorteerd en geordend in folds volgens de gekozen datumindexatie. Standaard kruisvalidatie daarentegen selecteert willekeurig welke rijen worden opgenomen in een gegeven fold.
Het aantal folds dat wordt gebruikt als trainingsgegevens neemt geleidelijk toe door elke iteratie van de training. Dit betekent dat tijdens de eerste iteratie mogelijk alleen de eerste (oudste) fold wordt gebruikt, waarbij volgende iteraties geleidelijk een groter volume aan trainingsgegevens bevatten, inclusief meer recente gegevens. De fold die wordt gebruikt als testgegevens varieert bij elke iteratie.
Dit staat in contrast met de standaard kruisvalidatiemethode, die een vaste hoeveelheid gegevens gebruikt voor trainings- en testsplitsingen bij elke iteratie (dat wil zeggen vier folds voor de training en één fold voor de tests).
Omdat de volledige trainingsgegevensverzameling wordt gesorteerd langs de door u geselecteerde index, zijn de gegevens die worden gebruikt om het getrainde model te testen altijd recenter - of net zo recent - dan de gegevens die zijn gebruikt om het model te trainen. De automatische evaluatiegegevens die worden gebruikt om de laatste prestatietests op het model uit te voeren, zijn altijd recenter - of net zp recent - dan de rest van de trainingsgegevensverzameling.
Daarentegen kan de standaard kruisvalidatie ertoe leiden dat modellen worden getest op gegevens die ouder zijn dan de trainingsgegevens, wat resulteert in een gegevenslek.
Automatische evaluatie en tijdgebaseerde kruisvalidatie
Deze procedure toont hoe tijdbewuste modellen worden getraind. Het proces heeft verschillen en overeenkomsten met het standaard kruisvalidatieproces.
Alle gegevens in uw gegevensverzameling worden gesorteerd langs de datumindex die u hebt geselecteerd. Dit omvat de trainingsgegevens en de evaluatiegegevens.
Voordat de training van uw experiment begint, wordt twintig procent van uw gegevensverzameling geëxtraheerd als evaluatiegegevens. Deze evaluatiegegevens zijn recenter, of net zo recent, dan de rest van de gegevensverzameling. De resterende tachtig procent van de gegevensverzameling wordt gebruikt om het model te trainen met kruisvalidatie.
Ter voorbereiding op de kruisvalidatie worden de gesorteerde trainingsgegevens opgesplitst in een aantal folds. Met betrekking tot de datumindex die u selecteert, bevat de eerste fold de oudste records en de laatste fold de recentste records.
Het model wordt dan in vijf iteraties getraind. In elke iteratie wordt de hoeveelheid trainingsgegevens geleidelijk verhoogd. Door elke iteratie neemt ook de recentheid van de opgenomen trainingsgegevens toe. Trainingsstatistieken worden gegenereerd gedurende de kruisvalidatie en zijn het gemiddelde van de berekende waarden.
Na de training wordt het model toegepast op de apart gehouden evaluatiegegevens. Het voordeel van evaluatiegegevens is dat deze tijdens de training niet door het model worden gezien, waardoor ze geschikt zijn voor het valideren van de prestaties van het model. Evaluatiegegevens worden gegenereerd tijdens deze laatste modelevaluatie.