Overfitting en onevenwichtige gegevens voorkomen met Geautomatiseerde ML
Overfitting en onevenwichtige gegevens zijn veelvoorkomende valkuilen wanneer u machine learning-modellen bouwt. De functie Geautomatiseerde ML in Azure Machine Learning biedt standaard grafieken en metrische gegevens om u te helpen deze risico's te identificeren. In dit artikel wordt beschreven hoe u aanbevolen procedures in Geautomatiseerde ML kunt implementeren om veelvoorkomende problemen te verhelpen.
Overfitting identificeren
Overfitting in machine learning vindt plaats wanneer een model te goed past bij de trainingsgegevens. Als gevolg hiervan kan het model geen nauwkeurige voorspellingen doen over ongelezen testgegevens. Het model heeft specifieke patronen en ruis in de trainingsgegevens onthouden en het is niet flexibel genoeg om voorspellingen te doen over echte gegevens.
Bekijk de volgende getrainde modellen en de bijbehorende nauwkeurigheid van de trein en test:
Modelleren | Nauwkeurigheid van trainen | Nauwkeurigheid van de test |
---|---|---|
A | 99,9% | 95% |
B | 87% | 87% |
E | 99,9% | 45% |
Model A: De test voor dit model produceert iets minder nauwkeurigheid dan de modeltraining. Er is een veelvoorkomende misvatting dat als de testnauwkeurigheid voor niet-gebruikte gegevens lager is dan de nauwkeurigheid van de training, het model wordt overgepast. De nauwkeurigheid van de test moet echter altijd kleiner zijn dan de nauwkeurigheid van de training. Het onderscheid tussen overfitting versus passend passende gegevens komt neer op het meten hoeveel minder de nauwkeurigheid is.
Model A versus model B: Model A is een beter model omdat het een hogere testnauwkeurigheid heeft. Hoewel de nauwkeurigheid van de test iets lager is dan 95%, is het geen significant verschil dat aangeeft dat overfitting aanwezig is. Model B heeft geen voorkeur omdat de nauwkeurigheid van de trein en test vergelijkbaar is.
Model C: Dit model vertegenwoordigt een duidelijk geval van overfitting. De nauwkeurigheid van de training is hoog en de testnauwkeurigheid is laag. Dit onderscheid is subjectief, maar is afkomstig van kennis van uw probleem en gegevens en wat de acceptabele omvang van fouten is.
Overfitting voorkomen
In de meeste egregio's gaat een overgewaardeerd model ervan uit dat de combinaties van functiewaarden tijdens de training altijd exact dezelfde uitvoer voor het doel opleveren. Om overfitting van uw gegevens te voorkomen, is het raadzaam om aanbevolen procedures voor machine learning te volgen. Dit zijn verschillende methoden die u kunt configureren in uw model-implementatie. Geautomatiseerde ML biedt standaard ook andere opties om overfitting te voorkomen.
De volgende tabel bevat een overzicht van algemene aanbevolen procedures:
Best practice | Implementatie | Geautomatiseerde machine learning |
---|---|---|
Meer trainingsgegevens gebruiken en statistische vooroordelen elimineren | X | |
Doellekken voorkomen | X | |
Minder functies opnemen | X | |
Ondersteuning voor regularisatie en optimalisatie van hyperparameters | X | |
Beperkingen voor modelcomplexiteit toepassen | X | |
Kruisvalidatie gebruiken | X |
Best practices toepassen om overfitting te voorkomen
In de volgende secties worden aanbevolen procedures beschreven die u kunt gebruiken in de implementatie van uw machine learning-model om overfitting te voorkomen.
Meer gegevens gebruiken
Het gebruik van meer gegevens is de eenvoudigste en best mogelijke manier om overfitting te voorkomen. Deze aanpak verhoogt doorgaans de nauwkeurigheid. Wanneer u meer gegevens gebruikt, wordt het moeilijker voor het model om exacte patronen te onthouden. Het model wordt gedwongen oplossingen te bereiken die flexibeler zijn om meer voorwaarden te kunnen bieden. Het is ook belangrijk om statistische vooroordelen te herkennen, om ervoor te zorgen dat uw trainingsgegevens geen geïsoleerde patronen bevatten die niet bestaan in livevoorspellingsgegevens. Dit scenario kan moeilijk worden opgelost omdat er sprake kan zijn van overfitting in vergelijking met live testgegevens.
Doellekken voorkomen
Doellekken is een vergelijkbaar probleem. Mogelijk ziet u geen overfitting tussen de trein- en testsets, maar het lekprobleem verschijnt tijdens de voorspellingstijd. Doellekken treden op wanneer uw model 'vals' tijdens de training wordt bedrogen door toegang te krijgen tot gegevens die normaal gesproken niet op het moment van voorspellingen moeten worden gebruikt. Een voorbeeld is dat het model maandag voorspelt wat de basisprijs is voor vrijdag. Als uw functies per ongeluk gegevens van donderdag bevatten, heeft het model toegang tot gegevens die niet beschikbaar zijn op het moment van voorspelling, omdat het niet in de toekomst kan zien. Doellekken is een eenvoudige fout om te missen. Het is vaak zichtbaar waar u abnormaal hoge nauwkeurigheid voor uw probleem hebt. Als u de aandelenkoers probeert te voorspellen en een model hebt getraind met een nauwkeurigheid van 95%, is er waarschijnlijk sprake van doellekken ergens in uw functies.
Minder functies opnemen
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. Als u functies kunt verwijderen en dezelfde nauwkeurigheid kunt behouden, kan uw model flexibeler zijn en het risico op overfitting verminderen.
Geautomatiseerde ML-functies controleren om overfitting te voorkomen
In de volgende secties worden standaard aanbevolen procedures beschreven in Geautomatiseerde ML om overfitting te voorkomen.
Ondersteuning voor regularisatie en afstemming van hyperparameters
Regularisatie is het proces van het minimaliseren van een kostenfunctie om complexe en overgepaste modellen te bestraffen. Er zijn verschillende soorten regularisatiefuncties. Over het algemeen straffen alle functies de grootte, variantie en complexiteit van modelcoëfficiënten. Geautomatiseerde ML maakt gelijktijdig gebruik van L1 (Lasso), L2 (Ridge) en ElasticNet (L1 en L2) in verschillende combinaties met verschillende hyperparameterinstellingen voor modellen die overfitting regelen. Geautomatiseerde ML varieert hoeveel een model wordt gereguleerd en kiest het beste resultaat.
Beperkingen voor modelcomplexiteit toepassen
Geautomatiseerde ML implementeert ook expliciete beperkingen voor modelcomplexiteit om overfitting te voorkomen. In de meeste gevallen is deze implementatie specifiek bedoeld voor beslissingsstructuur- of forestalgoritmen. De maximale diepte van de afzonderlijke boom is beperkt en het totale aantal bomen dat in bos- of ensembletechnieken wordt gebruikt, is beperkt.
Kruisvalidatie gebruiken
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' krijgt en grote nauwkeurigheid heeft met één subset, maar door veel subsets te gebruiken, kan het model niet elke keer hoge nauwkeurigheid bereiken. Wanneer u CV uitvoert, geeft u een validatie-bewaringsgegevensset op, geeft u uw CV-vouwen (aantal subsets) op en traint Geautomatiseerde ML uw model en stemt u hyperparameters uit om de fout in uw validatieset te minimaliseren. Eén CV-vouw kan worden overgepast, maar door veel van deze te gebruiken, vermindert het proces de kans dat uw uiteindelijke model wordt overgepast. Het nadeel is dat CV resulteert in langere trainingstijden en hogere kosten, omdat u een model één keer traint voor elke n in de CV-subsets.
Notitie
Kruisvalidatie is niet standaard ingeschakeld. Deze functie moet worden geconfigureerd in geautomatiseerde machine learning-instellingen. 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 gevonden in gegevens voor machine learning-classificatiescenario's en verwijst naar gegevens die een onevenredige verhouding van waarnemingen in elke klasse bevatten. Deze onbalans kan leiden tot een onwaar waargenomen positief effect van de nauwkeurigheid van een model, omdat de invoergegevens vooroordelen hebben ten opzichte van één klasse, wat resulteert in het getrainde model om die vooroordelen na te bootsen.
Daarnaast genereren geautomatiseerde ML-taken automatisch de volgende grafieken. Deze grafieken helpen u inzicht te krijgen in de juistheid van de classificaties van uw model en modellen te identificeren die mogelijk worden beïnvloed door onevenwichtige gegevens.
Diagram | Beschrijving |
---|---|
Verwarringsmatrix | Evalueert de correct geclassificeerde labels op basis van de werkelijke labels van de gegevens. |
Precisie-relevante overeenkomsten | Evalueert de verhouding van de juiste labels ten opzichte van de verhouding van gevonden labelexemplaren van de gegevens. |
ROC-curves | Evalueert de verhouding van de juiste labels ten opzichte van de verhouding van fout-positieve labels. |
Onevenwichtige gegevens verwerken
Als onderdeel van het doel om de machine learning-werkstroom te vereenvoudigen, biedt Automated ML ingebouwde mogelijkheden om te helpen omgaan met onevenwichtige gegevens:
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 Automated ML worden gebruikt, detecteren onbalans wanneer het aantal steekproeven in de minderheidsklasse gelijk is aan of minder dan 20% van het aantal steekproeven in de meerderheidsklasse. De minderheidsklasse verwijst naar de klasse met de minste steekproeven en de meerderheidsklasse verwijst naar de klasse met de meeste steekproeven. Later voert geautomatiseerde machine learning een experiment uit met subsampledgegevens om te controleren of het gebruik van klassegewichten dit probleem kan verhelpen en de prestaties kan verbeteren. Als het een betere prestaties via dit experiment vaststelt, wordt de remedie toegepast.
Gebruik een prestatiemetriek die beter te maken heeft met onevenwichtige gegevens. De AUC_weighted is bijvoorbeeld een primaire metriek waarmee de bijdrage van elke klasse wordt berekend op basis van het relatieve aantal steekproeven dat die klasse vertegenwoordigt. Deze metrische waarde is robuuster tegen onevenwichtigheid.
De volgende technieken zijn andere opties voor het afhandelen van onevenwichtige gegevens buiten geautomatiseerde ML:
Opnieuwsampleen tot zelfs de klasse-onevenwichtigheid. U kunt de kleinere klassen omhoog of omlaag samplen van de grotere klassen. Deze methoden vereisen expertise om te verwerken en te analyseren.
Bekijk 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. Relevante overeenkomsten meet de volledigheid van een classificatie, waarbij een hogere relevante overeenkomsten minder fout-negatieven aangeeft.