"I stedet for å fokusere på koden, bør selskaper fokusere på å utvikle systematiske ingeniørpraksiser for å forbedre data på måter som er pålitelige, effektive og systematiske. Med andre ord, bedrifter må gå fra en modellsentrisk tilnærming til en datasentrisk tilnærming.» – Andrew Ng
En datasentrisk AI-tilnærming innebærer å bygge AI-systemer med kvalitetsdata som involverer dataforberedelse og funksjonsutvikling. Dette kan være en kjedelig oppgave som involverer datainnsamling, oppdagelse, profilering, rensing, strukturering, transformering, berikelse, validering og sikker lagring av dataene.
Amazon SageMaker Data Wrangler er en tjeneste i Amazon SageMaker Studio som gir en ende-til-ende-løsning for å importere, forberede, transformere, presentere og analysere data ved bruk av lite eller ingen koding. Du kan integrere en Data Wrangler-dataforberedelsesflyt i arbeidsflytene dine for maskinlæring (ML) for å forenkle dataforbehandling og funksjonsutvikling, og ta dataforberedelse til produksjon raskere uten å måtte skrive PySpark-kode, installere Apache Spark eller spinne opp klynger.
For scenarier der du må legge til dine egne tilpassede skript for datatransformasjoner, kan du skrive transformasjonslogikken din i Pandas, PySpark, PySpark SQL. Data Wrangler støtter nå NLTK- og SciPy-biblioteker for å lage tilpassede transformasjoner for å forberede tekstdata for ML og utføre begrensningsoptimalisering.
Du kan støte på scenarier der du må legge til dine egne tilpassede skript for datatransformasjon. Med Data Wranglers tilpassede transformasjonsevne kan du skrive transformasjonslogikken din i Pandas, PySpark, PySpark SQL.
I dette innlegget diskuterer vi hvordan du kan skrive din egendefinerte transformasjon i NLTK for å forberede tekstdata for ML. Vi vil også dele noen eksempler på tilpasset kodetransformasjon ved å bruke andre vanlige rammeverk som NLTK, NumPy, SciPy og scikit-learn samt AWS AI Services. For formålet med denne øvelsen bruker vi Titanic datasett, et populært datasett i ML-fellesskapet, som nå er lagt til som en eksempel datasett i Data Wrangler.
Løsningsoversikt
Data Wrangler har over 40 innebygde kontakter for import av data. Etter at data er importert, kan du bygge dataanalyse og transformasjoner ved hjelp av over 300 innebygde transformasjoner. Du kan deretter generere industrialiserte rørledninger for å presse funksjonene til Amazon enkel lagringstjeneste (Amazon S3) eller Amazon SageMaker Feature Store. Følgende diagram viser ende-til-ende høynivåarkitekturen.
Forutsetninger
Data Wrangler er en SageMaker-funksjon tilgjengelig innenfor Amazon SageMaker Studio. Du kan følge med innføringsprosessen i Studio for å spinne opp Studio-miljøet og notatbøker. Selv om du kan velge mellom noen få autentiseringsmetoder, er den enkleste måten å opprette et Studio-domene på å følge Instruksjoner for hurtigstart. Hurtigstart bruker de samme standardinnstillingene som standard Studio-oppsett. Du kan også velge å gå ombord ved å bruke AWS IAM Identity Center (etterfølger til AWS Single Sign-On) for autentisering (se Ombord på Amazon SageMaker Domain ved hjelp av IAM Identity Center).
Importer Titanic-datasettet
Start Studio-miljøet ditt og lag et nytt Data Wrangler flyt. Du kan enten importere ditt eget datasett eller bruke et eksempeldatasett (Titanic) som vist i følgende skjermbilde. Data Wrangler lar deg importere datasett fra forskjellige datakilder. For vår brukssituasjon importerer vi eksempeldatasettet fra en S3-bøtte.
Når den er importert, vil du se to noder (kildenoden og datatypenoden) i dataflyten. Data Wrangler identifiserer automatisk datatypen for alle kolonnene i datasettet.
Tilpassede transformasjoner med NLTK
For dataforberedelse og funksjonsutvikling med Data Wrangler kan du bruke over 300 innebygde transformasjoner eller bygge dine egne tilpassede transformasjoner. Egendefinerte transformasjoner kan skrives som separate trinn i Data Wrangler. De blir en del av .flow-filen i Data Wrangler. Den tilpassede transformasjonsfunksjonen støtter Python, PySpark og SQL som forskjellige trinn i kodebiter. Etter at notatbokfiler (.ipynb) er generert fra .flow-filen eller .flow-filen er brukt som oppskrifter, fortsetter de tilpassede transformasjonskodebitene uten å kreve noen endringer. Denne utformingen av Data Wrangler lar tilpassede transformasjoner bli en del av en SageMaker Processing-jobb for å behandle massive datasett med tilpassede transformasjoner.
Titanic-datasettet har et par funksjoner (navn og home.dest) som inneholder tekstinformasjon. Vi bruker NLTK for å dele navnekolonnen og trekke ut etternavnet, og skrive ut hyppigheten av etternavn. NLTK er en ledende plattform for å bygge Python-programmer for å jobbe med menneskelige språkdata. Det gir brukervennlige grensesnitt til over 50 korpus og leksikalske ressurser som WordNet, sammen med en pakke med tekstbehandlingsbiblioteker for klassifisering, tokenisering, stemming, tagging, parsing og semantisk resonnement, og innpakninger for NLP-biblioteker (natural language processing) med industriell styrke.
For å legge til en ny transformasjon, fullfør følgende trinn:
- Velg plusstegnet og velg Legg til Transform.
- Velg Legg til trinn Og velg Egendefinert transformasjon.
Du kan lage en tilpasset transformasjon ved å bruke Pandas, PySpark, Python brukerdefinerte funksjoner og SQL PySpark.
- Velg Python (Pandaer) og legg til følgende kode for å trekke ut etternavnet fra navnekolonnen:
- Velg Forhåndsvisning for å gjennomgå resultatene.
Følgende skjermbilde viser last_name
kolonne ekstrahert.
- Legg til et nytt tilpasset transformertrinn for å identifisere frekvensfordelingen til etternavnene, ved å bruke følgende kode:
- Velg Forhåndsvisning for å gjennomgå resultatene av frekvensen.
Tilpassede transformasjoner med AWS AI-tjenester
AWS forhåndstrente AI-tjenester gir ferdiglagd intelligens for applikasjonene og arbeidsflytene dine. AWS AI-tjenester integreres enkelt med applikasjonene dine for å håndtere mange vanlige brukstilfeller. Du kan nå bruke funksjonene for AWS AI-tjenester som et tilpasset transformasjonstrinn i Data Wrangler.
Amazon Comprehend bruker NLP for å hente ut innsikt om innholdet i dokumenter. Den utvikler innsikt ved å gjenkjenne enhetene, nøkkelsetningene, språket, følelsene og andre vanlige elementer i et dokument.
Vi bruker Amazon Comprehend for å trekke ut enhetene fra navnekolonnen. Fullfør følgende trinn:
- Legg til et tilpasset transformasjonstrinn.
- Velg Python (Pandaer).
- Skriv inn følgende kode for å trekke ut enhetene:
- Velg Forhåndsvisning og visualisere resultatene.
Vi har nå lagt til tre tilpassede transformasjoner i Data Wrangler.
- Velg Dataflyt for å visualisere dataflyten fra ende til ende.
Tilpassede transformasjoner med NumPy og SciPy
nusset er et åpen kildekode-bibliotek for Python som tilbyr omfattende matematiske funksjoner, tilfeldige tallgeneratorer, lineære algebrarutiner, Fourier-transformasjoner og mer. SciPy er et åpen kildekode Python-bibliotek som brukes til vitenskapelig databehandling og teknisk databehandling, som inneholder moduler for optimalisering, lineær algebra, integrasjon, interpolasjon, spesialfunksjoner, rask Fourier-transformasjon (FFT), signal- og bildebehandling, løsere og mer.
Data Wrangler-tilpassede transformasjoner lar deg kombinere Python, PySpark og SQL som forskjellige trinn. I den følgende Data Wrangler-flyten brukes forskjellige funksjoner fra Python-pakker, NumPy og SciPy på Titanic-datasettet som flere trinn.
NumPy-transformasjoner
Priskolonnen i Titanic-datasettet har ombordstigningspriser for forskjellige passasjerer. Histogrammet til billettpriskolonnen viser jevn fordeling, bortsett fra den siste søppelkassen. Ved å bruke NumPy-transformasjoner som log eller kvadratrot, kan vi endre fordelingen (som vist med kvadratrottransformasjonen).
Se følgende kode:
SciPy-transformasjoner
SciPy-funksjoner som z-score brukes som en del av den tilpassede transformasjonen for å standardisere prisfordeling med gjennomsnitt og standardavvik.
Se følgende kode:
Begrensningsoptimalisering med NumPy og SciPy
Data Wrangler-tilpassede transformasjoner kan håndtere avanserte transformasjoner som begrensningsoptimalisering ved å bruke SciPy-optimaliseringsfunksjoner og kombinere SciPy med NumPy. I det følgende eksempelet viser ikke prisen som en funksjon av alder noen observerbar trend. Begrensningsoptimalisering kan imidlertid transformere prisen som en funksjon av alder. Begrensningsbetingelsen i dette tilfellet er at den nye totalprisen forblir den samme som den gamle totalprisen. Data Wrangler-tilpassede transformasjoner lar deg kjøre SciPy-optimaliseringsfunksjonen for å bestemme den optimale koeffisienten som kan transformere billettprisen som en funksjon av alder under begrensninger.
Optimaliseringsdefinisjon, objektivdefinisjon og flere begrensninger kan nevnes som forskjellige funksjoner mens man formulerer begrensningsoptimalisering i en tilpasset Data Wrangler-transformasjon ved bruk av SciPy og NumPy. Tilpassede transformasjoner kan også bringe forskjellige løsermetoder som er tilgjengelige som en del av SciPy-optimaliseringspakken. En ny transformert variabel kan genereres ved å multiplisere den optimale koeffisienten med den opprinnelige kolonnen og legges til eksisterende kolonner i Data Wrangler. Se følgende kode:
Data Wrangler-tilpassede transformasjonsfunksjonen har UI-evnen til å vise resultatene av SciPy-optimaliseringsfunksjoner som verdien av optimal koeffisient (eller flere koeffisienter).
Tilpassede transformasjoner med scikit-learn
scikit lære er en Python-modul for maskinlæring bygget på toppen av SciPy. Det er et åpen kildekode ML-bibliotek som støtter veiledet og uovervåket læring. Den gir også ulike verktøy for modelltilpasning, dataforbehandling, modellvalg, modellevaluering og mange andre verktøy.
Diskretisering
Diskretisering (ellers kjent som kvantisering or binning) gir en måte å partisjonere kontinuerlige funksjoner i diskrete verdier. Visse datasett med kontinuerlige funksjoner kan ha nytte av diskretisering, fordi diskretisering kan transformere datasettet med kontinuerlige attributter til et med bare nominelle attributter. One-hot kodede diskretiserte funksjoner kan gjøre en modell mer uttrykksfull, samtidig som tolkningen opprettholdes. For eksempel kan forbehandling med en diskretisering introdusere ikke-linearitet til lineære modeller.
I følgende kode bruker vi KBinsDiscretizer
for å diskretisere alderskolonnen i 10 søppelkasser:
Du kan se skuffekantene skrevet ut på følgende skjermbilde.
One-hot-koding
Verdier i Embarked-kolonnene er kategoriske verdier. Derfor må vi representere disse strengene som numeriske verdier for å utføre vår klassifisering med modellen vår. Vi kan også gjøre dette ved å bruke en en-hot-kodingstransformasjon.
Det er tre verdier for Embarked: S, C og Q. Vi representerer disse med tall. Se følgende kode:
Rydd opp
Når du ikke bruker Data Wrangler, er det viktig å slå av forekomsten den kjører på for å unngå å pådra deg ekstra avgifter.
Data Wrangler lagrer automatisk dataflyten hvert 60. sekund. For å unngå å miste arbeid, lagre dataflyten før du slår av Data Wrangler.
- For å lagre dataflyten din i Studio, velg filet, velg deretter Lagre data Wrangler Flow.
- For å slå av Data Wrangler-forekomsten, i Studio, velg Kjører forekomster og kjerner.
- Under KJØRER APPER, velg avslutningsikonet ved siden av sagemaker-data-wrangler-1.0-appen.
- Velg Slå av alt å bekrefte.
Data Wrangler kjører på en ml.m5.4xlarge instans. Denne instansen forsvinner fra KJØRINGSINSTANSER når du slår av Data Wrangler-appen.
Etter at du har slått av Data Wrangler-appen, må den starte på nytt neste gang du åpner en Data Wrangler-flytfil. Dette kan ta noen minutter.
konklusjonen
I dette innlegget demonstrerte vi hvordan du kan bruke tilpassede transformasjoner i Data Wrangler. Vi brukte bibliotekene og rammeverket i Data Wrangler-beholderen for å utvide de innebygde datatransformasjonsmulighetene. Eksemplene i dette innlegget representerer en undergruppe av rammeverket som brukes. Transformasjonene i Data Wrangler-flyten kan nå skaleres inn til en pipeline for DataOps.
For å lære mer om bruk av dataflyter med Data Wrangler, se Opprett og bruk en Data Wrangler-flyt og Amazon SageMaker-priser. For å komme i gang med Data Wrangler, se Forbered ML-data med Amazon SageMaker Data Wrangler. For å lære mer om Autopilot og AutoML på SageMaker, besøk Automatiser modellutvikling med Amazon SageMaker Autopilot.
Om forfatterne
Meenakshisundaram Thandavarayan er en senior AI/ML-spesialist med AWS. Han hjelper høyteknologiske strategiske kontoer på deres AI- og ML-reise. Han er veldig lidenskapelig opptatt av datadrevet AI.
Sovik Kumar Nath er en AI/ML løsningsarkitekt med AWS. Han har lang erfaring med ende-til-ende-design og løsninger for maskinlæring; forretningsanalyse innen finansiell, operasjonell og markedsanalyse; helsevesen; forsyningskjede; og IoT. Utenfor jobben liker Sovik å reise og se på film.
Abigail er programvareutviklingsingeniør hos Amazon SageMaker. Hun brenner for å hjelpe kunder med å forberede dataene sine i DataWrangler og bygge distribuerte maskinlæringssystemer. På fritiden liker Abigail å reise, gå på tur, gå på ski og bake.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- Minting the Future med Adryenn Ashley. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/authoring-custom-transformations-in-amazon-sagemaker-data-wrangler-using-nltk-and-scipy/
- : har
- :er
- $OPP
- 1
- 10
- 100
- 7
- 8
- 9
- a
- Om oss
- kontoer
- la til
- Ytterligere
- adresse
- avansert
- Etter
- Ages
- AI
- AI-tjenester
- AI / ML
- Alle
- tillater
- langs
- Selv
- Amazon
- Amazon Comprehend
- Amazon SageMaker
- Amazon SageMaker Data Wrangler
- analyse
- analytics
- analysere
- og
- Andrew
- En annen
- noen
- Apache
- app
- søknader
- anvendt
- påføring
- tilnærming
- arkitektur
- ER
- AS
- At
- attributter
- Autentisering
- forfatter
- forfatter
- automatisk
- AutoML
- tilgjengelig
- AWS
- BE
- fordi
- bli
- vært
- før du
- nytte
- BIN
- boarding
- bringe
- bygge
- Bygning
- bygget
- innebygd
- virksomhet
- by
- CAN
- evner
- saken
- saker
- viss
- kjede
- endring
- Endringer
- Velg
- klassifisering
- kode
- Koding
- samling
- Kolonne
- kolonner
- kombinere
- kombinere
- Felles
- samfunnet
- Selskaper
- fullføre
- fatte
- omfattende
- databehandling
- tilstand
- forhold
- Bekrefte
- Ulemper
- begrensninger
- inneholde
- Container
- innhold
- kontinuerlig
- kunne
- Par
- skape
- skikk
- Kunder
- dato
- dataanalyse
- Dataklargjøring
- data-drevet
- datasett
- Misligholde
- demonstrert
- utforming
- design
- Bestem
- utvikle
- Utvikling
- utvikler
- avvik
- forskjellig
- Funnet
- diskutere
- distribueres
- distribusjon
- dokument
- dokumenter
- ikke
- domene
- ned
- lett
- lett-å-bruke
- effektiv
- enten
- elementer
- ende til ende
- ingeniør
- Ingeniørarbeid
- berikende
- enheter
- enhet
- Miljø
- evaluering
- Hver
- eksempel
- eksempler
- Unntatt
- Øvelse
- eksisterende
- erfaring
- uttrykks
- utvide
- omfattende
- Omfattende erfaring
- trekke ut
- FAST
- raskere
- Trekk
- Egenskaper
- avgifter
- Noen få
- filet
- Filer
- finansiell
- fitting
- flyten
- Flows
- Fokus
- fokusering
- følge
- etter
- Til
- formulering
- Rammeverk
- rammer
- Gratis
- Frekvens
- fra
- moro
- funksjon
- funksjoner
- generere
- generert
- generatorer
- få
- håndtere
- Ha
- he
- helsetjenester
- hjelpe
- hjelper
- hi-tech
- høyt nivå
- Hjemprodukt
- Hvordan
- Men
- HTML
- http
- HTTPS
- menneskelig
- ICON
- identifiserer
- identifisere
- Identitet
- bilde
- importere
- viktig
- importere
- bedre
- in
- I andre
- informasjon
- innsikt
- installere
- f.eks
- integrere
- integrering
- Intelligens
- grensesnitt
- introdusere
- IOT
- IT
- Jobb
- reise
- jpg
- nøkkel
- kjent
- Språk
- Siste
- ledende
- LÆRE
- læring
- bibliotekene
- Bibliotek
- i likhet med
- lite
- å miste
- maskin
- maskinlæring
- Vedlike
- gjøre
- mange
- Marketing
- massive
- matematiske
- Kan..
- nevnt
- metoder
- kunne
- minutter
- ML
- modell
- modeller
- Moduler
- Moduler
- mer
- flytte
- Filmer
- flere
- multiplisere
- navn
- navn
- Naturlig
- Natural Language Processing
- Trenger
- Ny
- neste
- nlp
- node
- noder
- bærbare
- Antall
- tall
- følelsesløs
- Målet
- of
- tilby
- Gammel
- on
- Ombord
- onboarding
- ONE
- åpen
- åpen kildekode
- operasjonell
- optimal
- optimalisering
- Optimalisere
- rekkefølge
- original
- Annen
- ellers
- vår
- utenfor
- enn
- egen
- pakke
- pakker
- pandaer
- del
- lidenskapelig
- Utfør
- setninger
- rørledning
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- i tillegg til
- Populær
- Post
- praksis
- Forbered
- Skrive ut
- prosessering
- Produksjon
- profilering
- programmer
- gi
- gir
- formål
- Skyv
- Python
- kvalitet
- Rask
- tilfeldig
- Raw
- pålitelig
- forblir
- representere
- svar
- Resultater
- retur
- anmeldelse
- root
- Kjør
- s
- sagemaker
- samme
- Eksempel på datasett
- Spar
- scenarier
- vitenskapelig
- scikit lære
- skript
- sekunder
- sikkert
- utvalg
- senior
- separat
- tjeneste
- Tjenester
- innstillinger
- oppsett
- Del
- bør
- Vis
- vist
- Viser
- Slå
- nedleggelse
- undertegne
- Signal
- Enkelt
- forenkle
- enkelt
- Software
- programvareutvikling
- løsning
- Solutions
- noen
- kilde
- Kilder
- Spark
- spesiell
- spesialist
- Snurre rundt
- splittet
- kvadrat
- Standard
- Begynn
- startet
- stats
- Trinn
- Steps
- lagring
- lagring
- Strategisk
- strukturering
- studio
- slik
- suite
- levere
- forsyningskjeden
- Støtter
- Systemer
- bord
- Ta
- ta
- Oppgave
- Teknisk
- Det
- De
- Kilden
- deres
- derfor
- Disse
- tre
- tid
- til
- token
- tokenization
- tokens
- verktøy
- topp
- Totalt
- Transform
- Transformation
- transformasjoner
- forvandlet
- transformere
- Traveling
- Trend
- ui
- etter
- bruke
- bruk sak
- brukt
- verktøy
- verdi
- Verdier
- ulike
- Besøk
- se
- Vei..
- måter
- VI VIL
- hvilken
- mens
- vil
- med
- innenfor
- uten
- ord
- Arbeid
- arbeidsflyt
- skrive
- skrevet
- Du
- Din
- zephyrnet