Zephyrnet-logo

Hoe overfitting voorkomen?

Datum:

Afbeelding door redacteur

 

Overfitting is een veelgemaakte fout die veel datawetenschappers maken. Het kan je uren aan coderen kosten en alles in de prullenbak gooien. Uw model kan onnauwkeurige resultaten opleveren en tot verdere problemen in het besluitvormingsproces leiden. 

Voordat we ingaan op hoe we overfitting kunnen voorkomen, laten we eens kijken wat overfitting is.

Overfitting is wanneer een statistisch model precies past bij zijn trainingsgegevens. Het is een type modelleringsfout die verklaart dat uw functies te nauw aansluiten bij een beperkt aantal gegevenspunten. Dit komt doordat het model zich uitsluitend richt op variabelen die het kent en er automatisch van uitgaat dat deze voorspellingen zullen werken op testen of ongeziene gegevens. Dit leidt ertoe dat het model toekomstige waarnemingen niet nauwkeurig kan voorspellen.

Een van de redenen waarom overfitting plaatsvindt, is vanwege de complexiteit van het model of de dataset. Als het model te complex is of het model traint op een voorbeelddataset die erg groot is, begint het model informatie over de dataset te onthouden die niet relevant is. Wanneer informatie wordt onthouden, sluit het model te nauw aan bij de trainingsset en kan het niet goed generaliseren naar nieuwe gegevens. 

Hoewel dit goed is bij het werken met trainingsgegevens omdat het een lage fout oplevert, wordt het erg nutteloos bij het werken met testgegevens omdat het een hoge fout produceert. Een manier om aan te geven of uw model overfitting is, is als het een laag foutenpercentage maar een hoge variantie heeft. 

Het tegenovergestelde van Overfitting is Underfitting. Underfitting is wanneer een model de relatie tussen de input- en outputvariabelen niet nauwkeurig identificeert. Dit kan te wijten zijn aan het feit dat het model erg eenvoudig is en kan worden opgelost door meer invoerfuncties toe te voegen of door modellen met een hoge variantie te gebruiken, zoals beslisbomen. 

Het ergste van Underfitting is dat het noch trainingsgegevens kan modelleren, noch nieuwe gegevens kan generaliseren, wat een hoog foutenpercentage oplevert voor zowel de trainingsset als ongeziene gegevens.

Een ander aspect dat we moeten begrijpen voordat we ingaan op hoe we overfitting kunnen voorkomen, is signaal en ruis. 

Een signaal is het echte onderliggende patroon dat het model helpt de gegevens te leren. Zo is de relatie tussen leeftijd en lengte bij tieners een duidelijke relatie. 

Ruis is willekeurige en irrelevante gegevens in de dataset. Als we hetzelfde voorbeeld gebruiken voor Signal, als we een voorbeeld nemen van een school die bekend staat om zijn hoofdvak in sport, zal dit uitschieters veroorzaken. Natuurlijk zullen er meer leerlingen op school komen vanwege hun fysieke kenmerken, zoals lengte bij basketbal. Dit veroorzaakt willekeur in uw model en laat zien hoe ruis het signaal verstoort.

Als u een efficiënt machine learning-model produceert dat goed presteert, kan het het verschil tussen signaal en ruis onderscheiden. 

Goodness of fit is een statistische term die verwijst naar hoe dicht de voorspelde waarden van een model overeenkomen met de waargenomen waarden. Wanneer een model de ruis leert in plaats van het signaal te leren, leidt dat tot overfitting. Een te complex of te eenvoudig model vergroot de mogelijkheid om Noise te leren.

Trainen met meer gegevens

Ik ga beginnen met de eenvoudigste techniek die je kunt gebruiken. Door het volume van uw gegevens in de trainingsfase te vergroten, verbetert u niet alleen de nauwkeurigheid van uw model, maar kunt u ook overfitting verminderen. Hierdoor kan uw model meer signalen identificeren, de patronen leren en fouten minimaliseren. 

Dit zal het model helpen om goed te generaliseren naar nieuwe gegevens, omdat er meer mogelijkheden zijn voor het model om de relatie tussen input- en outputvariabelen te begrijpen. U moet er echter voor zorgen dat de aanvullende trainingsgegevens die u gebruikt schoon zijn - zo niet, dan zou u het omgekeerde kunnen doen en meer complexiteit toevoegen. 

Functieselectie

De volgende eenvoudigste techniek die u kunt gebruiken om overfitting te verminderen, is functieselectie. Dit is het proces waarbij het aantal invoervariabelen wordt verminderd door alleen de relevante functies te selecteren die ervoor zorgen dat uw model goed presteert. 

Afhankelijk van uw taak zijn er enkele functies die geen relevantie of correlatie hebben met andere functies. Daarom kunnen deze worden verwijderd, omdat het uw model te veel is om iets te leren dat niet nodig is. Om erachter te komen welke functies een directe correlatie hebben met uw taak, kunt u de verschillende functies testen door ze op individuele modellen te trainen. 

U verbetert niet alleen de prestaties van uw modellen, maar u verlaagt ook de rekenkosten van het modelleren. 

Gegevensvergroting

Gegevensvergroting is een reeks technieken die de hoeveelheid gegevens kunstmatig vergroten door nieuwe gegevenspunten te genereren uit bestaande gegevens.

Hoewel het toevoegen van meer schone data een optie is, is het ook een erg dure optie. Data Augmentation verlaagt die kosten door gegevens diverser te laten lijken, aangezien de voorbeeldgegevens er elke keer dat ze door het model worden verwerkt iets anders uitzien. Elke dataset zal uniek zijn voor het model, waardoor het leertempo en de prestaties toenemen. 

Bij deze techniek kan ook ruis worden gebruikt om de stabiliteit van het model te verbeteren. Door ruis aan de gegevens toe te voegen, worden de gegevens diverser zonder de kwaliteit van de gegevenskwaliteit te verminderen. De keuze voor het toevoegen van ruis moet echter zorgvuldig en met mate worden gedaan om overfitting te voorkomen.

Vroeg stoppen 

Het meten van de prestaties van uw model tijdens de trainingsfase door middel van elke iteratie is een goede techniek om overfitting te voorkomen. U kunt dit doen door de training te pauzeren voordat het model het geluid begint te leren. Houd er echter rekening mee dat bij het gebruik van de 'Early Stopping'-techniek het risico bestaat dat het trainingsproces te vroeg wordt onderbroken - wat kan leiden tot onderaanpassing. 

Regularisatie

Regularisatie dwingt uw model om eenvoudiger te zijn om de verliesfunctie te minimaliseren en overfitting of underfitting te voorkomen. Het ontmoedigt het model om iets te leren dat erg complex is.

Deze techniek is bedoeld om de coëfficiënt te bestraffen, wat handig is bij het verminderen van overfitting, aangezien een model dat lijdt aan overfitting een coëfficiënt heeft die over het algemeen opgeblazen is. Als de coëfficiënt opblaast, heeft dit tot gevolg dat de kostenfunctie toeneemt.

Regularisatie is ook een hyperparameter voor technieken zoals kruisvalidatie, waardoor het proces eenvoudiger wordt.  

Kruisvalidatie

Cross-Validation is een van de meest bekende technieken om te meten tegen overfitting. Het wordt gebruikt om te evalueren hoe goed de resultaten van statistische analyse kunnen worden gegeneraliseerd naar ongeziene gegevens.

Het proces van kruisvalidatie is het genereren van meerdere treintestsplitsingen van uw trainingsgegevens - die worden gebruikt om uw model af te stemmen. De parameters ondergaan dan een kruisvalidatie waarbij de beste parameters worden geselecteerd en deze worden teruggevoerd naar het te hertrainen model. Dit verbetert de algehele prestaties en nauwkeurigheid van het model en helpt het model beter te generaliseren naar onzichtbare gegevens. 

Voorbeelden van Cross-Validation technieken zijn Hold-out, K-folds, Leave-one-out en Leave-p-out.

De voordelen van Cross-Validation zijn dat het eenvoudig te begrijpen en te implementeren is, en over het algemeen een lagere bias heeft in vergelijking met andere methoden. 

Als je meer wilt weten over de meest gebruikte Cross-Validation-techniek K-fold, lees dan dit artikel: Waarom k-voudige kruisvalidatie gebruiken?

Ensembleren

De laatste techniek waar ik het over zal hebben is Ensembling. Ensemble-methoden creëren meerdere modellen en combineren vervolgens de voorspellingen die door deze modellen worden geproduceerd om de resultaten te verbeteren. De meest populaire ensemble-methoden zijn onder meer boosting en bagging.

bagging

Bagging is een acroniem voor 'Bootstrap Aggregation' en is een ensemblemethode die wordt gebruikt om de variantie in het voorspellingsmodel te verkleinen. Bagging heeft tot doel de kans op overfitting van complexe modellen te verkleinen door te focussen op de 'sterke leerlingen'

Het traint een groot aantal sterke leerlingen parallel en combineert vervolgens de sterke leerlingen om te optimaliseren en nauwkeurige voorspellingen te produceren. Algoritmen waarvan bekend is dat ze een hoge variantie hebben, zijn beslissingsbomen, zoals classificatie- en regressiebomen (CART)

Het stimuleren van

Boosting richt zich op het omzetten van een 'zwakke leerling' naar een sterkere door de voorspellende flexibiliteit van veel eenvoudigere modellen te verbeteren. Het vermindert de biasfout door eenvoudigere modellen te bouwen en te verbeteren tot sterke voorspellende modellen.

De zwakke leerlingen worden in volgorde getraind, zodat ze zich kunnen concentreren op het leren van hun eerdere fouten. Zodra dit is gebeurd, worden de zwakke leerlingen allemaal gecombineerd tot een sterke leerling. 

Als je meer wilt weten over Ensemble Techniques, lees dan dit artikel: Wanneer zouden ensembletechnieken een goede keuze zijn?

Je hebt het tot het einde gehaald. In dit artikel hebben we doorgenomen:

  • Wat is overfitting?
  • Wat is onderaanpassing?
  • Signaal en ruis
  • Technieken om overfitting te voorkomen

Blijf op de hoogte voor meer artikelen die verder ingaan op dit onderwerp, zoals The Variance Bias Trade-off en meer.

 
 
Nisha Arja is een datawetenschapper en freelance technisch schrijver. Ze is vooral geïnteresseerd in het geven van loopbaanadvies op het gebied van Data Science of tutorials en op theorie gebaseerde kennis rond Data Science. Ze wil ook de verschillende manieren onderzoeken waarop kunstmatige intelligentie de levensduur van de mens ten goede komt. Een scherpe leerling, die haar technische kennis en schrijfvaardigheid wil verbreden, terwijl ze anderen helpt te begeleiden.
 

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?