Breng uw gegevens in evenwicht voor machine learning met Amazon SageMaker Data Wrangler

Bronknooppunt: 1600102

Amazon SageMaker-gegevens Wrangler is een nieuwe mogelijkheid van Amazon Sage Maker dat maakt het voor datawetenschappers en ingenieurs sneller om gegevens voor machine learning (ML)-toepassingen voor te bereiden door een visuele interface te gebruiken. Het bevat meer dan 300 ingebouwde gegevenstransformaties, zodat u functies snel kunt normaliseren, transformeren en combineren zonder dat u code hoeft te schrijven.

Vandaag zijn we verheugd om nieuwe transformaties aan te kondigen waarmee u uw datasets eenvoudig en effectief kunt balanceren voor ML-modeltraining. We laten in dit bericht zien hoe deze transformaties werken.

Nieuwe balanceeroperatoren

De nieuw aangekondigde balanceringsoperatoren zijn gegroepeerd onder de Saldogegevens type transformeren in de VOEG TRANSFORMATIE TOE brood.

Momenteel ondersteunen de transformatie-operators alleen binaire classificatieproblemen. Bij binaire classificatieproblemen is de classificator belast met het classificeren van elk monster in een van de twee klassen. Wanneer het aantal steekproeven in de meerderheidsklasse (groter) aanzienlijk groter is dan het aantal steekproeven in de minderheidsklasse (kleiner), wordt de dataset als onevenwichtig beschouwd. Deze scheefheid is een uitdaging voor ML-algoritmen en classificaties, omdat het trainingsproces de neiging heeft om gericht te zijn op de meerderheidsklasse.

Om deze uitdaging aan te gaan, werden evenwichtsschema's voorgesteld, die ervoor zorgen dat de gegevens evenwichtiger worden voordat de classificator wordt getraind. De eenvoudigste balanceringsmethoden zijn ofwel de minderheidsklasse overbemonsteren door minderheidssteekproeven te dupliceren of de meerderheidsklasse onderbemonsteren door meerderheidssteekproeven te verwijderen. Het idee om synthetische minderheidssteekproeven toe te voegen aan tabelgegevens werd voor het eerst voorgesteld in de Synthetic Minority Oversampling Technique (SMOTE), waar synthetische minderheidssteekproeven worden gemaakt door paren van de oorspronkelijke minderheidspunten te interpoleren. SMOTE en andere balanceringsschema's zijn uitgebreid empirisch bestudeerd en er is aangetoond dat ze de voorspellingsprestaties in verschillende scenario's verbeteren, volgens de publicatie Naar SMOTE, of niet naar SMOTE.

Data Wrangler ondersteunt nu de volgende balanceringsoperators als onderdeel van de Saldogegevens transformeren:

  • Willekeurige oversampler – Willekeurig dupliceren van minderheidssteekproeven
  • Willekeurige onderbemonstering – Verwijder willekeurig meerderheidsmonsters
  • VLOT – Genereer synthetische minderheidssteekproeven door echte minderheidssteekproeven te interpoleren

Laten we nu de verschillende balanceringsoperatoren in detail bespreken.

Willekeurige oversample

Willekeurige oversampling omvat het selecteren van willekeurige voorbeelden uit de minderheidsklasse met een vervanging en het aanvullen van de trainingsgegevens met meerdere exemplaren van deze instantie. Daarom is het mogelijk dat een enkele instantie meerdere keren wordt geselecteerd. Met de Random overbemonstering transformeert, oversampelt Data Wrangler automatisch de minderheidsklasse voor u door de minderheidssamples in uw dataset te dupliceren.

Willekeurige ondersteekproef

Willekeurige onderbemonstering is het tegenovergestelde van willekeurige overbemonstering. Deze methode probeert willekeurig steekproeven uit de meerderheidsklasse te selecteren en te verwijderen, waardoor het aantal voorbeelden in de meerderheidsklasse in de getransformeerde gegevens wordt verminderd. De Random ondermonster transform type laat Data Wrangler automatisch de meerderheidsklasse voor u onderbemonsteren door meerderheidsvoorbeelden in uw dataset te verwijderen.

VLOT

In SMOTE worden synthetische minderheidssteekproeven aan de gegevens toegevoegd om de gewenste verhouding tussen meerderheids- en minderheidssteekproeven te bereiken. De synthetische monsters worden gegenereerd door interpolatie van paren van de oorspronkelijke minderheidspunten. De VLOT transform ondersteunt het balanceren van datasets, inclusief numerieke en niet-numerieke functies. Numerieke kenmerken worden geïnterpoleerd door gewogen gemiddelde. U kunt echter geen gewogen gemiddelde interpolatie toepassen op niet-numerieke objecten - het is onmogelijk om te middelen “dog” en “cat” Bijvoorbeeld. In plaats daarvan worden niet-numerieke kenmerken gekopieerd van beide originele minderheidssteekproeven volgens het gemiddelde gewicht.

Beschouw bijvoorbeeld twee voorbeelden, A en B:

A = [1, 2, "dog", "carnivore"]
B = [0, 0, "cow", "herbivore"]

Neem aan dat de monsters worden geïnterpoleerd met gewichten 0.3 voor monster A en 0.7 voor monster B. Daarom worden de numerieke velden gemiddeld met deze gewichten om respectievelijk 0.3 en 0.6 op te leveren. Het volgende veld is gevuld met “dog” met kans 0.3 en “cow” met waarschijnlijkheid 0.7. Evenzo is de volgende gelijk “carnivore” met kans 0.3 en “herbivore” met waarschijnlijkheid 0.7. Het willekeurig kopiëren gebeurt voor elke functie onafhankelijk, dus voorbeeld C hieronder is een mogelijk resultaat:

C = [0.3, 0.6, "dog", "herbivore"]

Dit voorbeeld laat zien hoe het interpolatieproces kan resulteren in onrealistische synthetische monsters, zoals een herbivoorhond. Dit komt vaker voor bij categorische functies, maar kan ook voorkomen bij numerieke functies. Hoewel sommige synthetische monsters onrealistisch kunnen zijn, kan SMOTE de classificatieprestaties nog steeds verbeteren.

Om op heuristische wijze realistischere steekproeven te genereren, interpoleert SMOTE alleen paren die dicht bij elkaar in de kenmerkruimte liggen. Technisch gezien wordt elk monster alleen geïnterpoleerd met zijn k-dichtstbijzijnde buren, waarbij een gemeenschappelijke waarde voor k 5 is. In onze implementatie van SMOTE worden alleen de numerieke kenmerken gebruikt om de afstanden tussen punten te berekenen (de afstanden worden gebruikt om de buurt te bepalen van elk monster). Het is gebruikelijk om de numerieke functies te normaliseren voordat afstanden worden berekend. Merk op dat de numerieke kenmerken alleen genormaliseerd zijn om de afstand te berekenen; de resulterende geïnterpoleerde kenmerken zijn niet genormaliseerd.

Laten we nu de balans opmaken Gegevensset voor volwassenen (ook bekend als de Census Income-dataset) met behulp van de ingebouwde SMOTE-transformatie van Data Wrangler. Deze multivariate dataset bevat zes numerieke functies en acht stringfuncties. Het doel van de dataset is een binaire classificatietaak om te voorspellen of het inkomen van een persoon hoger is dan $ 50,000 per jaar of niet op basis van censusgegevens.

U kunt de verdeling van de klassen ook visueel zien door een histogram te maken met behulp van de type histogramanalyse in Data Wrangler. De doelverdeling is onevenwichtig en de verhouding van records met >50K naar <=50K is ongeveer 1:4.

We kunnen deze gegevens balanceren met behulp van de VLOT operator gevonden onder de Saldo gegevens transformeren in Data Wrangler met de volgende stappen:

  1. Kies income als de doelkolom.

We willen dat de verdeling van deze rubriek evenwichtiger wordt.

  1. Stel de gewenste verhouding in op 0.66.

Daarom is de verhouding tussen het aantal minderheids- en meerderheidsmonsters 2:3 (in plaats van de ruwe verhouding van 1:4).

  1. Kies VLOT als de te gebruiken transformatie.
  2. Laat de standaardwaarden voor Aantal buren te middelen en al dan niet te normaliseren.
  3. Kies Voorbeschouwing om een ​​voorbeeld van de toegepaste transformatie te krijgen en kies Toevoegen om de transformatie aan uw gegevensstroom toe te voegen.

Nu kunnen we een nieuw histogram maken, vergelijkbaar met wat we eerder deden, om de opnieuw uitgelijnde verdeling van de klassen te zien. De volgende afbeelding toont het histogram van de income kolom na het balanceren van de dataset. De verdeling van monsters is nu 3:2, zoals de bedoeling was.

We kunnen deze nieuwe gebalanceerde gegevens nu exporteren en er een classifier op trainen, wat een superieure voorspellingskwaliteit zou kunnen opleveren.

Conclusie

In dit bericht hebben we laten zien hoe u onevenwichtige binaire classificatiegegevens kunt balanceren met behulp van Data Wrangler. Data Wrangler biedt drie balancerende operators: willekeurige onderbemonstering, willekeurige overbemonstering en SMOTE om de gegevens in uw ongebalanceerde gegevenssets opnieuw in evenwicht te brengen. Alle drie de methoden die door Data Wrangler worden aangeboden, ondersteunen multimodale gegevens, inclusief numerieke en niet-numerieke functies.

Als volgende stappen raden we u aan het voorbeeld in dit bericht te repliceren in uw Data Wrangler-gegevensstroom om te zien wat we in actie hebben besproken. Als u nieuw bent bij Data Wrangler of SageMaker Studio, verwijzen naar Aan de slag met Data Wrangler. Als je vragen hebt over dit bericht, voeg deze dan toe in het commentaargedeelte.


Over de auteurs

Yotam Elor is een Senior Applied Scientist bij Amazon SageMaker. Zijn onderzoeksinteresses liggen bij machine learning, met name voor tabelgegevens.

Arunprasath Shankar is een Artificial Intelligence en Machine Learning (AI / ML) Specialist Solutions Architect met AWS, die wereldwijde klanten helpt hun AI-oplossingen effectief en efficiënt in de cloud te schalen. In zijn vrije tijd kijkt Arun graag naar scifi-films en luistert hij naar klassieke muziek.

Bron: https://aws.amazon.com/blogs/machine-learning/balance-your-data-for-machine-learning-with-amazon-sagemaker-data-wrangler/

Tijdstempel:

Meer van AWS Blog over machine learning