"I stedet for at fokusere på koden, bør virksomheder fokusere på at udvikle systematisk ingeniørpraksis til at forbedre data på måder, der er pålidelige, effektive og systematiske. Med andre ord skal virksomheder bevæge sig fra en modelcentreret tilgang til en datacentreret tilgang." – Andrew Ng
En datacentreret AI-tilgang involverer at bygge AI-systemer med kvalitetsdata, der involverer dataforberedelse og funktionsudvikling. Dette kan være en kedelig opgave, der involverer dataindsamling, opdagelse, profilering, rensning, strukturering, transformation, berigelse, validering og sikker lagring af dataene.
Amazon SageMaker Data Wrangler er en tjeneste i Amazon SageMaker Studio der giver en end-to-end-løsning til at importere, forberede, transformere, fremhæve og analysere data ved brug af lidt eller ingen kodning. Du kan integrere et Data Wrangler-dataforberedelsesflow i dine maskinlærings-(ML)-workflows for at forenkle dataforbehandling og funktionsteknologi, og tage dataforberedelse til produktion hurtigere uden at skulle oprette PySpark-kode, installere Apache Spark eller oprette klynger.
For scenarier, hvor du skal tilføje dine egne brugerdefinerede scripts til datatransformationer, kan du skrive din transformationslogik i Pandas, PySpark, PySpark SQL. Data Wrangler understøtter nu NLTK- og SciPy-biblioteker til at oprette brugerdefinerede transformationer for at forberede tekstdata til ML og udføre begrænsningsoptimering.
Du kan løbe ind i scenarier, hvor du skal tilføje dine egne brugerdefinerede scripts til datatransformation. Med Data Wranglers tilpassede transformationsfunktion kan du skrive din transformationslogik i Pandas, PySpark, PySpark SQL.
I dette indlæg diskuterer vi, hvordan du kan skrive din tilpassede transformation i NLTK for at forberede tekstdata til ML. Vi vil også dele nogle eksempler på tilpasset kodetransformation ved hjælp af andre almindelige rammer såsom NLTK, NumPy, SciPy og scikit-learn samt AWS AI Services. Til formålet med denne øvelse bruger vi Titanic datasæt, et populært datasæt i ML-fællesskabet, som nu er tilføjet som en eksempeldatasæt i Data Wrangler.
Løsningsoversigt
Data Wrangler har over 40 indbyggede stik til import af data. Efter data er importeret, kan du bygge din dataanalyse og transformationer ved hjælp af over 300 indbyggede transformationer. Du kan derefter generere industrialiserede rørledninger for at skubbe funktionerne til Amazon Simple Storage Service (Amazon S3) eller Amazon SageMaker Feature Store. Følgende diagram viser ende-til-ende højniveau-arkitekturen.
Forudsætninger
Data Wrangler er en SageMaker-funktion tilgængelig indenfor Amazon SageMaker Studio. Du kan følge med onboarding-processen i Studio at skrue op for Studio-miljøet og notesbøgerne. Selvom du kan vælge mellem et par godkendelsesmetoder, er den nemmeste måde at oprette et Studio-domæne på at følge Instruktioner til hurtig start. Hurtig start bruger de samme standardindstillinger som standard Studio-opsætningen. Du kan også vælge at ombord vha AWS IAM Identity Center (efterfølger til AWS Single Sign-On) til godkendelse (se Ombord på Amazon SageMaker Domain ved hjælp af IAM Identity Center).
Importer Titanic-datasættet
Start dit Studio-miljø og opret et nyt Data Wrangler flow. Du kan enten importere dit eget datasæt eller bruge et eksempeldatasæt (Titanic) som vist på det følgende skærmbillede. Data Wrangler giver dig mulighed for at importere datasæt fra forskellige datakilder. Til vores brug importerer vi prøvedatasættet fra en S3-bøtte.
Når du først er importeret, vil du se to noder (kildenoden og datatypeknuden) i datastrømmen. Data Wrangler identificerer automatisk datatypen for alle kolonnerne i datasættet.
Brugerdefinerede transformationer med NLTK
Til dataforberedelse og funktionsudvikling med Data Wrangler kan du bruge over 300 indbyggede transformationer eller bygge dine egne brugerdefinerede transformationer. Brugerdefinerede transformationer kan skrives som separate trin i Data Wrangler. De bliver en del af .flow-filen i Data Wrangler. Den brugerdefinerede transformationsfunktion understøtter Python, PySpark og SQL som forskellige trin i kodestykker. Efter at notesbogsfiler (.ipynb) er genereret fra .flow-filen, eller .flow-filen er brugt som opskrifter, fortsætter de tilpassede transformationskodestykker uden at kræve ændringer. Dette design af Data Wrangler gør det muligt for brugerdefinerede transformationer at blive en del af et SageMaker Processing-job til behandling af massive datasæt med tilpassede transformationer.
Titanic-datasættet har et par funktioner (navn og home.dest), der indeholder tekstinformation. Vi bruger NLTK at opdele navnekolonnen og udtrække efternavnet og udskrive hyppigheden af efternavne. NLTK er en førende platform til at bygge Python-programmer til at arbejde med menneskelige sprogdata. Det giver brugervenlige grænseflader til over 50 korpus og leksikale ressourcer såsom WordNet, sammen med en suite af tekstbehandlingsbiblioteker til klassificering, tokenisering, stemming, tagging, parsing og semantisk ræsonnement, og indpakninger til NLP-biblioteker (natural-force natural language processing).
For at tilføje en ny transformation skal du udføre følgende trin:
- Vælg plustegnet og vælg Tilføj Transform.
- Vælg Tilføj trin Og vælg Brugerdefineret transformation.
Du kan oprette en brugerdefineret transformation ved hjælp af Pandas, PySpark, Python brugerdefinerede funktioner og SQL PySpark.
- Vælg Python (Pandas) og tilføj følgende kode for at udtrække efternavnet fra navnekolonnen:
- Vælg Eksempel at gennemgå resultaterne.
Følgende skærmbillede viser last_name
kolonne ekstraheret.
- Tilføj endnu et brugerdefineret transformationstrin for at identificere frekvensfordelingen af efternavnene ved hjælp af følgende kode:
- Vælg Eksempel at gennemgå resultaterne af frekvensen.
Tilpassede transformationer med AWS AI-tjenester
AWS præ-trænede AI-tjenester giver færdiglavet intelligens til dine applikationer og arbejdsgange. AWS AI-tjenester integreres nemt med dine applikationer for at løse mange almindelige brugssager. Du kan nu bruge funktionerne til AWS AI-tjenester som et tilpasset transformationstrin i Data Wrangler.
Amazon Comprehend bruger NLP til at udtrække indsigt om indholdet af dokumenter. Det udvikler indsigt ved at genkende entiteter, nøglesætninger, sprog, følelser og andre almindelige elementer i et dokument.
Vi bruger Amazon Comprehend til at udtrække entiteterne fra navnekolonnen. Udfør følgende trin:
- Tilføj et tilpasset transformationstrin.
- Vælg Python (Pandas).
- Indtast følgende kode for at udtrække enhederne:
- Vælg Eksempel og visualisere resultaterne.
Vi har nu tilføjet tre brugerdefinerede transformationer i Data Wrangler.
- Vælg Dataflow at visualisere ende-til-ende dataflow.
Brugerdefinerede transformationer med NumPy og SciPy
nusset er et open source-bibliotek til Python, der tilbyder omfattende matematiske funktioner, generatorer af tilfældige tal, lineære algebrarutiner, Fourier-transformationer og mere. SciPy er et open source Python-bibliotek, der bruges til videnskabelig databehandling og teknisk databehandling, indeholdende moduler til optimering, lineær algebra, integration, interpolation, specialfunktioner, hurtig Fourier-transformation (FFT), signal- og billedbehandling, løsere og mere.
Data Wrangler brugerdefinerede transformationer giver dig mulighed for at kombinere Python, PySpark og SQL som forskellige trin. I det følgende Data Wrangler-flow anvendes forskellige funktioner fra Python-pakker, NumPy og SciPy på Titanic-datasættet som flere trin.
NumPy-transformationer
Priskolonnen i Titanic-datasættet har boardingpriser for forskellige passagerer. Histogrammet for billetpriskolonnen viser ensartet fordeling, bortset fra den sidste skraldespand. Ved at anvende NumPy-transformationer som log eller kvadratrod, kan vi ændre fordelingen (som vist ved kvadratrodstransformationen).
Se følgende kode:
SciPy-transformationer
SciPy-funktioner som z-score anvendes som en del af den tilpassede transformation for at standardisere billetprisfordelingen med middelværdi og standardafvigelse.
Se følgende kode:
Begrænsningsoptimering med NumPy og SciPy
Data Wrangler brugerdefinerede transformationer kan håndtere avancerede transformationer som begrænsningsoptimering ved at anvende SciPy-optimeringsfunktioner og kombinere SciPy med NumPy. I det følgende eksempel viser billetprisen som funktion af alder ikke nogen observerbar tendens. Begrænsningsoptimering kan dog ændre billetprisen som en funktion af alder. Begrænsningsbetingelsen i dette tilfælde er, at den nye samlede billetpris forbliver den samme som den gamle samlede billetpris. Data Wrangler brugerdefinerede transformationer giver dig mulighed for at køre SciPy-optimeringsfunktionen for at bestemme den optimale koefficient, der kan transformere billetprisen som en funktion af alder under betingelser.
Optimeringsdefinition, objektiv definition og flere begrænsninger kan nævnes som forskellige funktioner, mens der formuleres begrænsningsoptimering i en tilpasset Data Wrangler-transformation ved hjælp af SciPy og NumPy. Brugerdefinerede transformationer kan også bringe forskellige solvermetoder, der er tilgængelige som en del af SciPy-optimeringspakken. En ny transformeret variabel kan genereres ved at gange den optimale koefficient med den oprindelige kolonne og tilføjes til eksisterende kolonner i Data Wrangler. Se følgende kode:
Data Wrangler brugerdefinerede transformationsfunktion har UI-kapaciteten til at vise resultaterne af SciPy-optimeringsfunktioner som værdien af optimal koefficient (eller flere koefficienter).
Tilpassede transformationer med scikit-learn
scikit-lære er et Python-modul til maskinlæring bygget oven på SciPy. Det er et open source ML-bibliotek, der understøtter overvåget og uovervåget læring. Det giver også forskellige værktøjer til modeltilpasning, dataforbehandling, modelvalg, modelevaluering og mange andre hjælpeprogrammer.
Diskretisering
Diskretisering (ellers kendt som kvantisering or binning) giver en måde at opdele kontinuerlige funktioner i diskrete værdier. Visse datasæt med kontinuerlige funktioner kan drage fordel af diskretisering, fordi diskretisering kan transformere datasættet af kontinuerlige attributter til et med kun nominelle attributter. One-hot kodede diskretiserede funktioner kan gøre en model mere udtryksfuld, samtidig med at fortolkningen bevares. For eksempel kan forbehandling med en diskretizer introducere ikke-linearitet til lineære modeller.
I den følgende kode bruger vi KBinsDiscretizer
for at diskretisere alderskolonnen i 10 skraldespande:
Du kan se beholderens kanter udskrevet på det følgende skærmbillede.
One-hot-kodning
Værdier i kolonnerne Embarked er kategoriske værdier. Derfor er vi nødt til at repræsentere disse strenge som numeriske værdier for at udføre vores klassificering med vores model. Vi kunne også gøre dette ved at bruge en one-hot-kodningstransformation.
Der er tre værdier for Embarked: S, C og Q. Vi repræsenterer disse med tal. Se følgende kode:
Ryd op
Når du ikke bruger Data Wrangler, er det vigtigt at lukke den instans, den kører på, for at undgå at pådrage sig yderligere gebyrer.
Data Wrangler gemmer automatisk dit dataflow hvert 60. sekund. For at undgå at miste arbejde skal du gemme dit dataflow, før du lukker Data Wrangler ned.
- Vælg for at gemme dit dataflow i Studio File (Felt), Og vælg derefter Gem data Wrangler Flow.
- For at lukke Data Wrangler-forekomsten ned i Studio skal du vælge Kører forekomster og kerner.
- Under KØRENDE APPS, skal du vælge nedlukningsikonet ud for sagemaker-data-wrangler-1.0-appen.
- Vælg Luk alt sammen at bekræfte.
Data Wrangler kører på en ml.m5.4xlarge instans. Denne instans forsvinder fra LØBENDE INSTANSER når du lukker Data Wrangler-appen ned.
Når du har lukket Data Wrangler-appen ned, skal den genstarte, næste gang du åbner en Data Wrangler-flowfil. Dette kan tage et par minutter.
Konklusion
I dette indlæg demonstrerede vi, hvordan du kan bruge tilpassede transformationer i Data Wrangler. Vi brugte bibliotekerne og rammerne i Data Wrangler-containeren til at udvide de indbyggede datatransformationsmuligheder. Eksemplerne i dette indlæg repræsenterer en delmængde af de anvendte rammer. Transformationerne i Data Wrangler-flowet kan nu skaleres ind i en pipeline til DataOps.
For at lære mere om brug af datastrømme med Data Wrangler, se Opret og brug et datawrangler-flow , Amazon SageMaker-priser. For at komme i gang med Data Wrangler, se Forbered ML Data med Amazon SageMaker Data Wrangler. For at lære mere om Autopilot og AutoML på SageMaker, besøg Automatiser modeludvikling med Amazon SageMaker Autopilot.
Om forfatterne
Meenakshisundaram Thandavarayan er senior AI/ML specialist med AWS. Han hjælper hi-tech strategiske konti på deres AI og ML rejse. Han er meget passioneret omkring datadrevet AI.
Sovik Kumar Nath er AI/ML løsningsarkitekt med AWS. Han har stor erfaring med end-to-end design og løsninger til maskinlæring; forretningsanalyse inden for finansiel, operationel og marketinganalyse; sundhedspleje; forsyningskæde; og IoT. Uden for arbejdet nyder Sovik at rejse og se film.
Abigail er softwareudviklingsingeniør hos Amazon SageMaker. Hun brænder for at hjælpe kunder med at forberede deres data i DataWrangler og bygge distribuerede maskinlæringssystemer. I sin fritid nyder Abigail at rejse, vandre, stå på ski og bage.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/authoring-custom-transformations-in-amazon-sagemaker-data-wrangler-using-nltk-and-scipy/
- :har
- :er
- $OP
- 1
- 10
- 100
- 7
- 8
- 9
- a
- Om
- Konti
- tilføjet
- Yderligere
- adresse
- fremskreden
- Efter
- Ages
- AI
- AI-tjenester
- AI / ML
- Alle
- tillader
- sammen
- Skønt
- Amazon
- Amazon Comprehend
- Amazon SageMaker
- Amazon SageMaker Data Wrangler
- analyse
- analytics
- analysere
- ,
- Andrew
- En anden
- enhver
- Apache
- app
- applikationer
- anvendt
- Anvendelse
- tilgang
- arkitektur
- ER
- AS
- At
- attributter
- Godkendelse
- forfatter
- forfatter
- automatisk
- AutoML
- til rådighed
- AWS
- BE
- fordi
- bliver
- været
- før
- gavner det dig
- BIN
- boarding
- bringe
- bygge
- Bygning
- bygget
- indbygget
- virksomhed
- by
- CAN
- kapaciteter
- tilfælde
- tilfælde
- vis
- kæde
- lave om
- Ændringer
- Vælg
- klassificering
- kode
- Kodning
- samling
- Kolonne
- Kolonner
- kombinerer
- kombinerer
- Fælles
- samfund
- Virksomheder
- fuldføre
- forstå
- omfattende
- computing
- betingelse
- betingelser
- Bekræfte
- ULEMPER
- begrænsninger
- indeholder
- Container
- indhold
- kontinuerlig
- kunne
- Par
- skabe
- skik
- Kunder
- data
- dataanalyse
- Dataforberedelse
- datastyret
- datasæt
- Standard
- demonstreret
- Design
- designs
- Bestem
- udvikling
- Udvikling
- udvikler
- afvigelse
- forskellige
- opdagelse
- diskutere
- distribueret
- fordeling
- dokumentet
- dokumenter
- Er ikke
- domæne
- ned
- nemt
- nem at bruge
- effektiv
- enten
- elementer
- ende til ende
- ingeniør
- Engineering
- berigende
- enheder
- enhed
- Miljø
- evaluering
- Hver
- eksempel
- eksempler
- Undtagen
- Dyrke motion
- eksisterende
- erfaring
- udtryksfulde
- udvide
- omfattende
- Omfattende oplevelse
- ekstrakt
- FAST
- hurtigere
- Feature
- Funktionalitet
- Gebyrer
- få
- File (Felt)
- Filer
- finansielle
- montering
- flow
- strømme
- Fokus
- fokusering
- følger
- efter
- Til
- formulering
- Framework
- rammer
- Gratis
- Frekvens
- fra
- sjovt
- funktion
- funktioner
- generere
- genereret
- generatorer
- få
- håndtere
- Have
- he
- sundhedspleje
- hjælpe
- hjælper
- hi-tech
- højt niveau
- Home
- Hvordan
- Men
- HTML
- http
- HTTPS
- menneskelig
- ICON
- identificerer
- identificere
- Identity
- billede
- importere
- vigtigt
- importere
- forbedring
- in
- I andre
- oplysninger
- indsigt
- installere
- instans
- integrere
- integration
- Intelligens
- grænseflader
- indføre
- tingenes internet
- IT
- Job
- rejse
- jpg
- Nøgle
- kendt
- Sprog
- Efternavn
- førende
- LÆR
- læring
- biblioteker
- Bibliotek
- ligesom
- lidt
- miste
- maskine
- machine learning
- Vedligeholdelse
- lave
- mange
- Marketing
- massive
- matematiske
- Kan..
- nævnte
- metoder
- måske
- minutter
- ML
- model
- modeller
- Moduler
- Moduler
- mere
- bevæge sig
- Film
- flere
- multiplicere
- navn
- navne
- Natural
- Natural Language Processing
- Behov
- Ny
- næste
- NLP
- node
- noder
- notesbog
- nummer
- numre
- bedøvet
- objektiv
- of
- tilbyde
- Gammel
- on
- Ombord
- onboarding
- ONE
- åbent
- open source
- operationelle
- optimal
- optimering
- Optimer
- ordrer
- original
- Andet
- Ellers
- vores
- uden for
- i løbet af
- egen
- pakke
- pakker
- pandaer
- del
- lidenskabelige
- Udfør
- sætninger
- pipeline
- perron
- plato
- Platon Data Intelligence
- PlatoData
- plus
- Populær
- Indlæg
- praksis
- Forbered
- forarbejdning
- produktion
- profilering
- Programmer
- give
- giver
- formål
- Skub ud
- Python
- kvalitet
- Hurtig
- tilfældig
- Raw
- pålidelig
- resterne
- repræsentere
- svar
- Resultater
- afkast
- gennemgå
- rod
- Kør
- s
- sagemaker
- samme
- Eksempeldatasæt
- Gem
- scenarier
- videnskabelig
- scikit-lære
- scripts
- sekunder
- sikkert
- valg
- senior
- adskille
- tjeneste
- Tjenester
- indstillinger
- setup
- Del
- bør
- Vis
- vist
- Shows
- Luk ned
- nedlukning
- underskrive
- Signal
- Simpelt
- forenkle
- enkelt
- Software
- softwareudvikling
- løsninger
- Løsninger
- nogle
- Kilde
- Kilder
- Spark
- særligt
- specialist
- Spin
- delt
- firkant
- standard
- starte
- påbegyndt
- statistik
- Trin
- Steps
- opbevaring
- lagring
- Strategisk
- strukturering
- Studio
- sådan
- suite
- forsyne
- forsyningskæde
- Understøtter
- Systemer
- bord
- Tag
- tager
- Opgaver
- Teknisk
- at
- The Source
- deres
- derfor
- Disse
- tre
- tid
- til
- token
- tokenization
- Tokens
- værktøjer
- top
- I alt
- Transform
- Transformation
- transformationer
- omdannet
- omdanne
- Traveling
- Trend
- ui
- under
- brug
- brug tilfælde
- anvendte
- forsyningsselskaber
- værdi
- Værdier
- forskellige
- Besøg
- ser
- Vej..
- måder
- GODT
- som
- mens
- vilje
- med
- inden for
- uden
- ord
- Arbejde
- arbejdsgange
- skriver
- skriftlig
- Du
- Din
- zephyrnet