Overfitting en onevenwichtige gegevens voorkomen met geautomatiseerde ML

Overfitting en onevenwichtige gegevens zijn veelvoorkomende valkuilen bij het bouwen van machine learning-modellen. Geautomatiseerde ML van Azure Machine Learning biedt standaard grafieken en metrische gegevens om u te helpen deze risico's te identificeren, en implementeert best practices om ze te beperken.

Overfitting identificeren

Overfitting in machine learning treedt op wanneer een model te goed past bij de trainingsgegevens en daardoor niet nauwkeurig kan worden voorspeld op ongeziene testgegevens. Met andere woorden, het model heeft specifieke patronen en ruis in de trainingsgegevens onthouden, maar is niet flexibel genoeg om voorspellingen te doen over echte gegevens.

Houd rekening met de volgende getrainde modellen en de bijbehorende nauwkeurigheid van trainen en testen.

Model Nauwkeurigheid trainen Nauwkeurigheid testen
A 99,9% 95%
B 87% 87%
C 99,9% 45%

Neem model A. Er is een veelvoorkomende misvatting dat als de nauwkeurigheid van tests op ongeziene gegevens lager is dan de nauwkeurigheid van de training, het model te veel is aangepast. De nauwkeurigheid van de test moet echter altijd kleiner zijn dan de nauwkeurigheid van de training, en het verschil tussen overfit en passend passend is, komt neer op hoeveel minder nauwkeurig.

Vergelijk modellen A en B, model A is een beter model omdat het een hogere testnauwkeurigheid heeft, en hoewel de nauwkeurigheid van de test iets lager is met 95%, is het geen significant verschil dat suggereert dat overfitting aanwezig is. U zou niet voor model B kiezen omdat de nauwkeurigheid van de training en de test dichter bij elkaar liggen.

Model C is een duidelijk geval van overfitting; de nauwkeurigheid van de training is hoog, maar de nauwkeurigheid van de test is niet zo hoog. Dit onderscheid is subjectief, maar komt voort uit kennis van uw probleem en gegevens, en welke grootte van fouten acceptabel zijn.

Overfitting voorkomen

In de meest egregioneuze gevallen gaat een overgepast model ervan uit dat de functie-waardecombinaties die tijdens de training worden gezien, altijd exact dezelfde uitvoer voor het doel opleveren.

De beste manier om overfitting te voorkomen, is door de best practices voor ML te volgen, waaronder:

  • Meer trainingsgegevens gebruiken en statistische afwijkingen elimineren
  • Doellekkage voorkomen
  • Minder functies gebruiken
  • Regularisatie en hyperparameteroptimalisatie
  • Beperkingen van modelcomplexiteit
  • Kruisvalidatie

In de context van Geautomatiseerde ML worden op de eerste drie manieren aanbevolen procedures weergegeven die u implementeert. De laatste drie vetgedrukte items zijn best practices Geautomatiseerde ML-implementaties worden standaard geïmplementeerd ter bescherming tegen overfitting. In andere instellingen dan Geautomatiseerde ML zijn alle zes aanbevolen procedures de moeite waard om te volgen om overfitting van modellen te voorkomen.

Aanbevolen procedures die u implementeert

Meer gegevens gebruiken

Het gebruik van meer gegevens is de eenvoudigste en best mogelijke manier om overfitting te voorkomen, en als een extra bonus verhoogt meestal de nauwkeurigheid. Wanneer u meer gegevens gebruikt, wordt het moeilijker voor het model om exacte patronen te onthouden en wordt het gedwongen oplossingen te vinden die flexibeler zijn om aan meer voorwaarden te voldoen. Het is ook belangrijk om statistische vooroordelen te herkennen om ervoor te zorgen dat uw trainingsgegevens geen geïsoleerde patronen bevatten die niet voorkomen in livevoorspellingsgegevens. Dit scenario kan moeilijk op te lossen zijn, omdat er overfitting aanwezig kan zijn in vergelijking met live testgegevens.

Doellekkage voorkomen

Doellekken is een vergelijkbaar probleem, waarbij u mogelijk geen overfitting ziet tussen trein-/testsets, maar het wordt weergegeven op het moment van voorspelling. Het lekken van het doel treedt op wanneer uw model 'vals speelt' tijdens de training door toegang te hebben tot gegevens die het normaal gesproken niet zou moeten hebben tijdens de voorspelling. Als u bijvoorbeeld op maandag wilt voorspellen wat een grondstoffenprijs op vrijdag zal zijn, als uw functies per ongeluk gegevens van donderdag hebben opgenomen, zijn dat gegevens die het model tijdens de voorspelling niet heeft omdat het niet in de toekomst kan kijken. Doellekkage is een makkelijke fout om te missen, maar wordt vaak gekenmerkt door abnormaal hoge nauwkeurigheid voor uw probleem. Als u probeert de aandelenkoers te voorspellen en een model hebt getraind met een nauwkeurigheid van 95%, is er waarschijnlijk sprake van lekkage ergens in uw functies.

Minder functies gebruiken

Het verwijderen van functies kan ook helpen bij overfitting door te voorkomen dat het model te veel velden heeft om specifieke patronen te onthouden, waardoor het flexibeler wordt. Het kan lastig zijn om kwantitatief te meten, maar als u functies kunt verwijderen en dezelfde nauwkeurigheid kunt behouden, hebt u het model waarschijnlijk flexibeler gemaakt en het risico op overfitting verminderd.

Best practices Geautomatiseerde ML-implementaties

Regularisatie en hyperparameterafstemming

Regularisatie is het minimaliseren van een kostenfunctie om complexe en overgepaste modellen te bestraffen. Er zijn verschillende soorten regularisatiefuncties, maar in het algemeen bestraffen ze allemaal de grootte, variantie en complexiteit van de modelcoëfficiënt. Geautomatiseerde ML maakt gebruik van L1 (Lasso), L2 (Ridge) en ElasticNet (L1 en L2 tegelijk) in verschillende combinaties met verschillende model hyperparameterinstellingen die overfitting regelen. Geautomatiseerde ML varieert de mate waarin een model wordt gereguleerd en kiest het beste resultaat.

Beperkingen van modelcomplexiteit

Geautomatiseerde ML implementeert ook expliciete modelcomplexiteitsbeperkingen om overfitting te voorkomen. In de meeste gevallen is deze implementatie specifiek bedoeld voor beslissingsstructuur- of forestalgoritmen, waarbij de maximale diepte van de afzonderlijke boomstructuur beperkt is en het totale aantal bomen dat in forest- of ensembletechnieken wordt gebruikt, beperkt is.

Kruisvalidatie

Kruisvalidatie (CV) is het proces van het nemen van veel subsets van uw volledige trainingsgegevens en het trainen van een model voor elke subset. Het idee is dat een model 'geluk' kan krijgen en grote nauwkeurigheid kan hebben met één subset, maar door veel subsets te gebruiken, bereikt het model niet elke keer deze hoge nauwkeurigheid. Wanneer u CV uitvoert, geeft u een gegevensset voor validatieblokkering op, geeft u uw CV-vouwen (aantal subsets) op en traint geautomatiseerde ML uw model en stemt hyperparameters af om fouten in uw validatieset te minimaliseren. Eén CV-vouw kan te veel worden gemonteerd, maar door veel van deze te gebruiken, vermindert het de kans dat uw uiteindelijke model overgepast is. Het nadeel is dat CV resulteert in langere trainingstijden en hogere kosten, omdat u één keer een model traint voor elke n in de CV-subsets.

Notitie

Kruisvalidatie is niet standaard ingeschakeld. deze moet worden geconfigureerd in Instellingen voor geautomatiseerde machine learning. Nadat kruisvalidatie is geconfigureerd en er een validatiegegevensset is opgegeven, wordt het proces voor u geautomatiseerd.

Modellen met onevenwichtige gegevens identificeren

Onevenwichtige gegevens worden vaak aangetroffen in gegevens voor machine learning-classificatiescenario's en verwijzen naar gegevens die een onevenredige verhouding van waarnemingen in elke klasse bevatten. Deze onevenwichtigheid kan leiden tot een ten onrechte waargenomen positief effect van de nauwkeurigheid van een model, omdat de invoergegevens vooroordelen hebben ten opzichte van één klasse, waardoor het getrainde model die vooroordelen nabootst.

Daarnaast genereren geautomatiseerde ML-taken automatisch de volgende grafieken. Deze grafieken helpen u de juistheid van de classificaties van uw model te begrijpen en modellen te identificeren die mogelijk worden beïnvloed door onevenwichtige gegevens.

Grafiek Beschrijving
Verwarringsmatrix Evalueert de correct geclassificeerde labels op basis van de werkelijke labels van de gegevens.
Precision-recall Evalueert de verhouding van de juiste labels ten opzichte van de verhouding van gevonden labelexemplaren van de gegevens
ROC-curven Evalueert de verhouding van de juiste labels ten opzichte van de verhouding van fout-positieve labels.

Onevenwichtige gegevens verwerken

Als onderdeel van het doel van het vereenvoudigen van de machine learning-werkstroom, heeft Geautomatiseerde ML ingebouwde mogelijkheden om te helpen omgaan met onevenwichtige gegevens, zoals:

  • Een kolom met gewicht: Geautomatiseerde ML maakt een kolom met gewichten als invoer om ervoor te zorgen dat rijen in de gegevens omhoog of omlaag worden gewogen, die kunnen worden gebruikt om een klasse meer of minder 'belangrijk' te maken.

  • De algoritmen die door Geautomatiseerde ML worden gebruikt, detecteren onevenwichtigheid wanneer het aantal steekproeven in de minderheidsklasse gelijk is aan of kleiner is dan 20% van het aantal steekproeven in de meerderheidsklasse, waarbij minderheidsklasse verwijst naar de klasse met de minste steekproeven en meerderheidsklasse verwijst naar de klasse met de meeste steekproeven. Vervolgens voert geautomatiseerde machine learning een experiment uit met subsampled gegevens om te controleren of het gebruik van klassegewichten dit probleem zou verhelpen en de prestaties zou verbeteren. Als er via dit experiment een betere prestaties worden vastgesteld, wordt deze oplossing toegepast.

  • Gebruik een prestatiemetriek die beter omgaat met onevenwichtige gegevens. De AUC_weighted is bijvoorbeeld een primaire metrische waarde die de bijdrage van elke klasse berekent op basis van het relatieve aantal steekproeven dat die klasse vertegenwoordigt, waardoor het beter bestand is tegen onevenwichtigheid.

De volgende technieken zijn aanvullende opties voor het verwerken van onevenwichtige gegevens buiten Geautomatiseerde ML.

  • Het formaat wijzigen in zelfs de klasse-onevenwichtigheid, door de kleinere klassen omhoog te nemen of door de grotere klassen lager te nemen. Deze methoden vereisen expertise om te verwerken en te analyseren.

  • Controleer metrische prestatiegegevens voor onevenwichtige gegevens. De F1-score is bijvoorbeeld het harmonische gemiddelde van precisie en relevante overeenkomsten. Precisie meet de nauwkeurigheid van een classificatie, waarbij een hogere precisie minder fout-positieven aangeeft, terwijl recall de volledigheid van een classificatie meet, waarbij een hogere intrekking minder fout-negatieven aangeeft.

Volgende stappen

Bekijk voorbeelden en leer hoe u modellen bouwt met behulp van Geautomatiseerde ML: