Balanser dataene dine for maskinlæring med Amazon SageMaker Data Wrangler

Kilde node: 1600102

Amazon SageMaker Data Wrangler er en ny evne til Amazon SageMaker som gjør det raskere for dataforskere og ingeniører å forberede data for maskinlæringsapplikasjoner (ML) ved å bruke et visuelt grensesnitt. Den inneholder over 300 innebygde datatransformasjoner slik at du raskt kan normalisere, transformere og kombinere funksjoner uten å måtte skrive noen kode.

I dag er vi glade for å kunngjøre nye transformasjoner som lar deg balansere datasettene dine enkelt og effektivt for opplæring i ML-modeller. Vi viser hvordan disse transformasjonene fungerer i dette innlegget.

Nye balanseringsoperatører

De nylig annonserte balanseoperatørene er gruppert under Balansedata transformere type i LEGG TIL TRANSFORM ruten.

Foreløpig støtter transformatoroperatorene bare binære klassifiseringsproblemer. I binære klassifiseringsproblemer har klassifikatoren i oppgave å klassifisere hver prøve til en av to klasser. Når antall prøver i majoritetsklassen (større) er betydelig større enn antall prøver i minoritetsklassen (mindre) anses datasettet som ubalansert. Denne skjevheten er utfordrende for ML-algoritmer og klassifiserere fordi treningsprosessen har en tendens til å være partisk mot majoritetsklassen.

Balanseordninger, som forsterker dataene til å være mer balanserte før opplæring av klassifisereren, ble foreslått for å møte denne utfordringen. De enkleste balansemetodene er enten oversampling av minoritetsklassen ved å duplisere minoritetsutvalg eller undersampling av majoritetsklassen ved å fjerne majoritetsutvalg. Ideen om å legge til syntetiske minoritetsprøver til tabelldata ble først foreslått i Synthetic Minority Oversampling Technique (SMOTE), der syntetiske minoritetsprøver lages ved å interpolere par av de opprinnelige minoritetspunktene. SMOTE og andre balanseringsordninger ble grundig studert empirisk og vist å forbedre prediksjonsytelsen i forskjellige scenarier, i henhold til publikasjonen Å SMOTE, eller ikke å SMOTE.

Data Wrangler støtter nå følgende balanseringsoperatører som en del av Balansedata forvandle:

  • Tilfeldig oversampler – Tilfeldig dupliser minoritetsprøver
  • Tilfeldig undersampler – Fjern majoritetsprøver tilfeldig
  • SMOTE – Generer syntetiske minoritetsprøver ved å interpolere ekte minoritetsprøver

La oss nå diskutere de forskjellige balanseringsoperatørene i detalj.

Tilfeldig overutvalg

Tilfeldig oversampling inkluderer å velge tilfeldige eksempler fra minoritetsklassen med en erstatning og å supplere treningsdataene med flere kopier av denne instansen. Derfor er det mulig at en enkelt forekomst kan velges flere ganger. Med Tilfeldig overprøve transform type, oversampler Data Wrangler automatisk minoritetsklassen for deg ved å duplisere minoritetsprøvene i datasettet.

Tilfeldig underutvalg

Tilfeldig undersampling er det motsatte av tilfeldig oversampling. Denne metoden søker å tilfeldig velge og fjerne prøver fra majoritetsklassen, og følgelig redusere antall eksempler i majoritetsklassen i de transformerte dataene. De Tilfeldig underprøve transform type lar Data Wrangler automatisk undersample majoritetsklassen for deg ved å fjerne majoritetsprøver i datasettet.

SMOTE

I SMOTE legges syntetiske minoritetsprøver til dataene for å oppnå ønsket forhold mellom majoritets- og minoritetsprøver. De syntetiske prøvene genereres ved interpolering av par av de opprinnelige minoritetspunktene. De SMOTE transform støtter balansering av datasett inkludert numeriske og ikke-numeriske funksjoner. Numeriske funksjoner er interpolert med vektet gjennomsnitt. Du kan imidlertid ikke bruke vektet gjennomsnittsinterpolasjon på ikke-numeriske funksjoner - det er umulig å gjennomsnitt “dog” og “cat” for eksempel. I stedet kopieres ikke-numeriske funksjoner fra begge originale minoritetsprøver i henhold til gjennomsnittsvekten.

Tenk for eksempel på to eksempler, A og B:

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

Anta at prøvene er interpolert med vektene 0.3 for prøve A og 0.7 for prøve B. Derfor beregnes gjennomsnittet av de numeriske feltene med disse vektene for å gi henholdsvis 0.3 og 0.6. Neste felt fylles ut med “dog” med sannsynlighet 0.3 og “cow” med sannsynlighet 0.7. På samme måte er den neste lik “carnivore” med sannsynlighet 0.3 og “herbivore” med sannsynlighet 0.7. Den tilfeldige kopieringen gjøres uavhengig for hver funksjon, så eksempel C nedenfor er et mulig resultat:

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

Dette eksemplet viser hvordan interpolasjonsprosessen kan resultere i urealistiske syntetiske prøver, for eksempel en planteetende hund. Dette er mer vanlig med kategoriske trekk, men kan også forekomme i numeriske trekk. Selv om noen syntetiske prøver kan være urealistiske, kan SMOTE fortsatt forbedre klassifiseringsytelsen.

For å heuristisk generere mer realistiske samplinger, interpolerer SMOTE bare par som er tett i funksjonsrom. Teknisk sett blir hver prøve kun interpolert med sine k-nærmeste naboer, der en felles verdi for k er 5. I vår implementering av SMOTE brukes kun de numeriske funksjonene for å beregne avstandene mellom punktene (avstandene brukes til å bestemme nabolaget av hver prøve). Det er vanlig å normalisere de numeriske funksjonene før du beregner avstander. Vær oppmerksom på at de numeriske funksjonene er normalisert bare for å beregne avstanden; de resulterende interpolerte funksjonene normaliseres ikke.

La oss nå balansere Datasett for voksne (også kjent som Census Income-datasettet) ved hjelp av den innebygde SMOTE-transformasjonen levert av Data Wrangler. Dette multivariate datasettet inkluderer seks numeriske funksjoner og åtte strengfunksjoner. Målet med datasettet er en binær klassifiseringsoppgave for å forutsi om inntekten til en person overstiger $50,000 XNUMX per år eller ikke basert på folketellingsdata.

Du kan også se fordelingen av klassene visuelt ved å lage et histogram ved å bruke histogramanalysetype i Data Wrangler. Målfordelingen er ubalansert og forholdet mellom poster med >50K til <=50K er ca 1:4.

Vi kan balansere disse dataene ved å bruke SMOTE operatør funnet under Balansedata transformer i Data Wrangler med følgende trinn:

  1. Velg income som målkolonnen.

Vi ønsker at fordelingen av denne kolonnen skal være mer balansert.

  1. Sett ønsket forhold til 0.66.

Derfor er forholdet mellom antall minoritets- og majoritetsutvalg 2:3 (i stedet for råforholdet 1:4).

  1. Velg SMOTE som transformasjon til bruk.
  2. La standardverdiene stå for Antall naboer til gjennomsnitt og om du skal normalisere eller ikke.
  3. Velg Forhåndsvisning for å få en forhåndsvisning av den anvendte transformasjonen og velge Legg til for å legge til transformasjonen til dataflyten din.

Nå kan vi lage et nytt histogram som ligner på det vi gjorde før for å se den omjusterte fordelingen av klassene. Følgende figur viser histogrammet til income kolonne etter balansering av datasettet. Prøvefordelingen er nå 3:2, slik det var meningen.

Vi kan nå eksportere disse nye balanserte dataene og trene en klassifiserer på dem, noe som kan gi overlegen prediksjonskvalitet.

konklusjonen

I dette innlegget demonstrerte vi hvordan man balanserer ubalanserte binære klassifiseringsdata ved hjelp av Data Wrangler. Data Wrangler tilbyr tre balanseringsoperatorer: tilfeldig undersampling, tilfeldig oversampling og SMOTE for å rebalansere data i dine ubalanserte datasett. Alle tre metodene som tilbys av Data Wrangler støtter multimodale data, inkludert numeriske og ikke-numeriske funksjoner.

Som neste trinn anbefaler vi at du replikerer eksemplet i dette innlegget i Data Wrangler-dataflyten din for å se hva vi diskuterte i praksis. Hvis du er ny på Data Wrangler eller SageMaker Studio, referere til Kom i gang med Data Wrangler. Hvis du har spørsmål knyttet til dette innlegget, vennligst legg det til i kommentarfeltet.


Om forfatterne

Yotam Elor er Senior Applied Scientist hos Amazon SageMaker. Hans forskningsinteresser er innen maskinlæring, spesielt for tabelldata.

Arunprasath Shankar er en kunstig intelligens og maskinlæring (AI / ML) spesialistløsningsarkitekt med AWS, som hjelper globale kunder å skalere sine AI-løsninger effektivt og effektivt i skyen. På fritiden liker Arun å se sci-fi-filmer og lytte til klassisk musikk.

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

Tidstempel:

Mer fra AWS maskinlæringsblogg