Balancer dine data til maskinlæring med Amazon SageMaker Data Wrangler

Kildeknude: 1600102

Amazon SageMaker Data Wrangler er en ny evne til Amazon SageMaker der gør det hurtigere for datavidenskabsfolk og ingeniører at forberede data til maskinlæringsapplikationer (ML) ved at bruge en visuel grænseflade. Den indeholder over 300 indbyggede datatransformationer, så du hurtigt kan normalisere, transformere og kombinere funktioner uden at skulle skrive nogen kode.

I dag er vi glade for at kunne annoncere nye transformationer, der giver dig mulighed for at balancere dine datasæt nemt og effektivt til træning i ML-model. Vi demonstrerer, hvordan disse transformationer fungerer i dette indlæg.

Nye balanceringsoperatører

De nyligt annoncerede balanceringsoperatører er grupperet under Balance data transformere type i TILFØJ TRANSFORM rude.

I øjeblikket understøtter transformationsoperatørerne kun binære klassifikationsproblemer. I binære klassifikationsproblemer har klassifikatoren til opgave at klassificere hver prøve til en af ​​to klasser. Når antallet af prøver i majoritetsklassen (større) er betydeligt større end antallet af prøver i minoritetsklassen (mindre) anses datasættet for at være ubalanceret. Denne skævhed er udfordrende for ML-algoritmer og klassifikatorer, fordi træningsprocessen har en tendens til at være forudindtaget i forhold til majoritetsklassen.

Balanceordninger, som øger dataene til at være mere afbalancerede, før klassificeringen trænes, blev foreslået for at løse denne udfordring. De enkleste afvejningsmetoder er enten oversampling af minoritetsklassen ved at duplikere minoritetsstikprøver eller undersampling af majoritetsklassen ved at fjerne majoritetsstikprøver. Ideen om at tilføje syntetiske minoritetsprøver til tabeldata blev først foreslået i Synthetic Minority Oversampling Technique (SMOTE), hvor syntetiske minoritetsprøver skabes ved at interpolere par af de oprindelige minoritetspunkter. SMOTE og andre balanceringsordninger blev grundigt undersøgt empirisk og viste sig at forbedre forudsigelsesydelsen i forskellige scenarier, ifølge publikationen At SMOTE, eller ikke at SMOTE.

Data Wrangler understøtter nu følgende balanceringsoperatører som en del af Balance data transformere:

  • Tilfældig oversampler – Tilfældigt duplikere minoritetsprøver
  • Tilfældig undersampler – Fjern tilfældigt flertalsprøver
  • SMOTE – Generer syntetiske minoritetsprøver ved at interpolere reelle minoritetsprøver

Lad os nu diskutere de forskellige balanceringsoperatører i detaljer.

Tilfældig oversampling

Tilfældig oversampling omfatter udvælgelse af tilfældige eksempler fra minoritetsklassen med en erstatning og supplering af træningsdataene med flere kopier af denne instans. Derfor er det muligt, at en enkelt forekomst kan vælges flere gange. Med Tilfældig overprøve transformeringstype, oversampler Data Wrangler automatisk minoritetsklassen for dig ved at duplikere minoritetsprøverne i dit datasæt.

Tilfældig undersampling

Tilfældig undersampling er det modsatte af tilfældig oversampling. Denne metode søger at tilfældigt udvælge og fjerne stikprøver fra majoritetsklassen, hvilket følgelig reducerer antallet af eksempler i majoritetsklassen i de transformerede data. Det Tilfældig underprøve transform type lader Data Wrangler automatisk undersample majoritetsklassen for dig ved at fjerne majoritetseksempler i dit datasæt.

SMOTE

I SMOTE tilføjes syntetiske minoritetsprøver til dataene for at opnå det ønskede forhold mellem majoritets- og minoritetsprøver. De syntetiske prøver genereres ved interpolation af par af de oprindelige minoritetspunkter. Det SMOTE transform understøtter balancering af datasæt inklusive numeriske og ikke-numeriske funktioner. Numeriske funktioner interpoleres med vægtet gennemsnit. Du kan dog ikke anvende vægtet gennemsnitsinterpolation på ikke-numeriske funktioner – det er umuligt at sætte et gennemsnit “dog” , “cat” for eksempel. I stedet kopieres ikke-numeriske træk fra begge originale minoritetsprøver i henhold til gennemsnitsvægten.

Overvej for eksempel to prøver, A og B:

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

Antag, at prøverne er interpoleret med vægte 0.3 for prøve A og 0.7 for prøve B. Derfor beregnes gennemsnittet af de numeriske felter med disse vægte for at give henholdsvis 0.3 og 0.6. Det næste felt er udfyldt med “dog” med sandsynlighed 0.3 og “cow” med sandsynlighed 0.7. På samme måde er den næste lig “carnivore” med sandsynlighed 0.3 og “herbivore” med sandsynlighed 0.7. Den tilfældige kopiering udføres uafhængigt for hver funktion, så prøve C nedenfor er et muligt resultat:

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

Dette eksempel viser, hvordan interpolationsprocessen kan resultere i urealistiske syntetiske prøver, såsom en planteædende hund. Dette er mere almindeligt med kategoriske træk, men kan også forekomme i numeriske træk. Selvom nogle syntetiske prøver kan være urealistiske, kan SMOTE stadig forbedre klassificeringsydelsen.

For heuristisk at generere mere realistiske samples interpolerer SMOTE kun par, der er tætte på funktionernes rum. Teknisk set interpoleres hver prøve kun med dens k-nærmeste naboer, hvor en fælles værdi for k er 5. I vores implementering af SMOTE bruges kun de numeriske funktioner til at beregne afstandene mellem punkter (afstandene bruges til at bestemme naboskabet af hver prøve). Det er almindeligt at normalisere de numeriske funktioner, før man beregner afstande. Bemærk, at de numeriske funktioner kun normaliseres med det formål at beregne afstanden; de resulterende interpolerede funktioner er ikke normaliserede.

Lad os nu balancere Voksendatasæt (også kendt som Census Income-datasættet) ved hjælp af den indbyggede SMOTE-transformation leveret af Data Wrangler. Dette multivariate datasæt indeholder seks numeriske funktioner og otte strengfunktioner. Målet med datasættet er en binær klassifikationsopgave til at forudsige, om en persons indkomst overstiger $50,000 om året eller ej baseret på folketællingsdata.

Du kan også se fordelingen af ​​klasserne visuelt ved at oprette et histogram ved hjælp af histogramanalysetype i Data Wrangler. Målfordelingen er ubalanceret og forholdet mellem poster med >50K til <=50K er omkring 1:4.

Vi kan afbalancere disse data ved hjælp af SMOTE operatør fundet under Balance data transformer i Data Wrangler med følgende trin:

  1. Vælg income som målkolonnen.

Vi ønsker, at fordelingen af ​​denne kolonne skal være mere afbalanceret.

  1. Indstil det ønskede forhold til 0.66.

Derfor er forholdet mellem antallet af minoritets- og majoritetsprøver 2:3 (i stedet for råforholdet 1:4).

  1. Vælg SMOTE som transformationen til brug.
  2. Lad standardværdierne være til Antal naboer til gennemsnit og om der skal normaliseres eller ej.
  3. Vælg Eksempel for at få en forhåndsvisning af den anvendte transformation og vælge Tilføj for at tilføje transformationen til dit dataflow.

Nu kan vi oprette et nyt histogram, der ligner det, vi gjorde før, for at se den omstillede fordeling af klasserne. Følgende figur viser histogrammet af income kolonne efter afbalancering af datasættet. Fordelingen af ​​prøver er nu 3:2, som det var meningen.

Vi kan nu eksportere disse nye afbalancerede data og træne en klassifikator på dem, hvilket kunne give overlegen forudsigelseskvalitet.

Konklusion

I dette indlæg demonstrerede vi, hvordan man balancerer ubalancerede binære klassifikationsdata ved hjælp af Data Wrangler. Data Wrangler tilbyder tre balanceringsoperatorer: tilfældig undersampling, tilfældig oversampling og SMOTE for at rebalancere data i dine ubalancerede datasæt. Alle tre metoder, der tilbydes af Data Wrangler, understøtter multimodale data inklusive numeriske og ikke-numeriske funktioner.

Som næste trin anbefaler vi, at du gentager eksemplet i dette indlæg i dit Data Wrangler-dataflow for at se, hvad vi diskuterede i aktion. Hvis du er ny til Data Wrangler eller SageMaker Studio, henvise til Kom godt i gang med Data Wrangler. Hvis du har spørgsmål relateret til dette indlæg, bedes du tilføje det i kommentarfeltet.


Om forfatterne

Yotam Elor er Senior Applied Scientist hos Amazon SageMaker. Hans forskningsinteresser er maskinlæring, især for tabeldata.

Arunprasath Shankar er en specialist i kunstig intelligens og maskinlæring (AI/ML) med AWS, der hjælper globale kunder med at skalere deres AI-løsninger effektivt og effektivt i skyen. I sin fritid nyder Arun at se sci-fi-film og lytte til klassisk musik.

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

Tidsstempel:

Mere fra AWS Machine Learning Blog