"Istället för att fokusera på koden bör företag fokusera på att utveckla systematiska ingenjörsmetoder för att förbättra data på ett sätt som är tillförlitligt, effektivt och systematiskt. Med andra ord måste företag gå från ett modellcentrerat tillvägagångssätt till ett datacentrerat tillvägagångssätt.” – Andrew Ng
En datacentrerad AI-metod innebär att bygga AI-system med kvalitetsdata som involverar dataförberedelse och funktionsteknik. Detta kan vara en tråkig uppgift som involverar datainsamling, upptäckt, profilering, rensning, strukturering, transformering, berikning, validering och säker lagring av data.
Amazon SageMaker Data Wrangler är en tjänst i Amazon SageMaker Studio som ger en helhetslösning för att importera, förbereda, transformera, presentera och analysera data med lite eller ingen kodning. Du kan integrera ett Data Wrangler-dataförberedande flöde i dina arbetsflöden för maskininlärning (ML) för att förenkla dataförbearbetning och funktionsteknik, ta dataförberedelse till produktion snabbare utan att behöva skriva PySpark-kod, installera Apache Spark eller skapa kluster.
För scenarier där du behöver lägga till dina egna anpassade skript för datatransformationer kan du skriva din transformationslogik i Pandas, PySpark, PySpark SQL. Data Wrangler stöder nu NLTK- och SciPy-bibliotek för att skapa anpassade transformationer för att förbereda textdata för ML och utföra begränsningsoptimering.
Du kan stöta på scenarier där du måste lägga till dina egna anpassade skript för datatransformation. Med Data Wranglers anpassade transformeringskapacitet kan du skriva din transformationslogik i Pandas, PySpark, PySpark SQL.
I det här inlägget diskuterar vi hur du kan skriva din anpassade transformation i NLTK för att förbereda textdata för ML. Vi kommer också att dela några exempel på anpassad kodtransform med andra vanliga ramverk som NLTK, NumPy, SciPy och scikit-learn samt AWS AI Services. För syftet med denna övning använder vi Titanic-dataset, en populär datauppsättning i ML-gemenskapen, som nu har lagts till som en exempeluppsättning inom Data Wrangler.
Lösningsöversikt
Data Wrangler tillhandahåller över 40 inbyggda kontakter för att importera data. Efter att data har importerats kan du bygga din dataanalys och transformationer med över 300 inbyggda transformationer. Du kan sedan generera industrialiserade pipelines för att driva funktionerna till Amazon enkel lagringstjänst (Amazon S3) eller Amazon SageMaker Feature Store. Följande diagram visar helhetsarkitekturen på hög nivå.
Förutsättningar
Data Wrangler är en SageMaker-funktion tillgänglig inom Amazon SageMaker Studio. Du kan följa introduktionsprocessen för Studio för att snurra upp Studio-miljön och anteckningsböckerna. Även om du kan välja mellan några få autentiseringsmetoder, är det enklaste sättet att skapa en Studio-domän att följa Snabbstartinstruktioner. Snabbstarten använder samma standardinställningar som standardinställningarna i Studio. Du kan också välja att ombord använda Aws iam identitetscenter (efterträdare till AWS Single Sign-On) för autentisering (se Ombord på Amazon SageMaker Domain med IAM Identity Center).
Importera Titanic-datauppsättningen
Starta din Studio-miljö och skapa en ny Data Wrangler-flöde. Du kan antingen importera din egen datauppsättning eller använda en exempeldatauppsättning (Titanic) som visas i följande skärmdump. Data Wrangler låter dig importera datamängder från olika datakällor. För vårt användningsfall importerar vi provdatauppsättningen från en S3-hink.
När du har importerat kommer du att se två noder (källnoden och datatypsnoden) i dataflödet. Data Wrangler identifierar automatiskt datatypen för alla kolumner i datamängden.
Anpassade transformationer med NLTK
För dataförberedelse och funktionsutveckling med Data Wrangler kan du använda över 300 inbyggda transformationer eller bygga dina egna anpassade transformationer. Anpassade transformationer kan skrivas som separata steg i Data Wrangler. De blir en del av .flow-filen i Data Wrangler. Den anpassade transformeringsfunktionen stöder Python, PySpark och SQL som olika steg i kodavsnitt. Efter att anteckningsbokfiler (.ipynb) har genererats från .flow-filen eller .flow-filen används som recept, kvarstår de anpassade transformeringskodavsnitten utan att några ändringar krävs. Denna design av Data Wrangler tillåter anpassade transformationer att bli en del av ett SageMaker Processing-jobb för bearbetning av enorma datamängder med anpassade transformationer.
Titanic dataset har ett par funktioner (namn och home.dest) som innehåller textinformation. Vi använder Nltk för att dela namnkolumnen och extrahera efternamnet och skriva ut frekvensen av efternamn. NLTK är en ledande plattform för att bygga Python-program för att arbeta med mänskliga språkdata. Det ger lättanvända gränssnitt till över 50 korpus och lexikaliska resurser som WordNet, tillsammans med en svit av textbehandlingsbibliotek för klassificering, tokenisering, stemming, taggning, analys och semantiska resonemang, och omslag för NLP-bibliotek (natural language processing) med industriell styrka.
För att lägga till en ny transformation, utför följande steg:
- Välj plustecknet och välj Lägg till Transform.
- Välja Lägg till steg Och välj Anpassad omvandling.
Du kan skapa en anpassad transformation med Pandas, PySpark, Python användardefinierade funktioner och SQL PySpark.
- Välja Python (Pandor) och lägg till följande kod för att extrahera efternamnet från namnkolumnen:
- Välja Förhandsvisning för att granska resultaten.
Följande skärmdump visar last_name
kolonn extraherades.
- Lägg till ytterligare ett anpassat transformeringssteg för att identifiera frekvensfördelningen av efternamnen, med hjälp av följande kod:
- Välja Förhandsvisning för att granska resultatet av frekvensen.
Anpassade transformationer med AWS AI-tjänster
AWS förutbildade AI-tjänster ger färdig intelligens för dina applikationer och arbetsflöden. AWS AI-tjänster integreras enkelt med dina applikationer för att hantera många vanliga användningsfall. Du kan nu använda funktionerna för AWS AI-tjänster som ett anpassat transformeringssteg i Data Wrangler.
Amazon Comprehend använder NLP för att extrahera insikter om innehållet i dokument. Den utvecklar insikter genom att känna igen enheter, nyckelfraser, språk, känslor och andra vanliga element i ett dokument.
Vi använder Amazon Comprehend för att extrahera enheterna från namnkolumnen. Slutför följande steg:
- Lägg till ett anpassat transformeringssteg.
- Välja Python (Pandor).
- Ange följande kod för att extrahera enheterna:
- Välja Förhandsvisning och visualisera resultatet.
Vi har nu lagt till tre anpassade transformeringar i Data Wrangler.
- Välja Data flöde för att visualisera dataflödet från slut till ände.
Anpassade transformationer med NumPy och SciPy
numpy är ett bibliotek med öppen källkod för Python som erbjuder omfattande matematiska funktioner, slumptalsgeneratorer, linjära algebrarutiner, Fourier-transformationer och mer. SciPy är ett Python-bibliotek med öppen källkod som används för vetenskaplig beräkning och teknisk beräkning, som innehåller moduler för optimering, linjär algebra, integration, interpolation, specialfunktioner, snabb Fourier-transform (FFT), signal- och bildbehandling, lösare med mera.
Data Wrangler anpassade transformationer låter dig kombinera Python, PySpark och SQL som olika steg. I följande Data Wrangler-flöde tillämpas olika funktioner från Python-paket, NumPy och SciPy på Titanic-datasetet som flera steg.
NumPy-transformationer
Priskolumnen i Titanic-datauppsättningen har ombordstigningspriser för olika passagerare. Histogrammet för priskolumnen visar enhetlig fördelning, med undantag för det sista facket. Genom att tillämpa NumPy-transformationer som log eller kvadratrot kan vi ändra fördelningen (som visas av kvadratrotstransformationen).
Se följande kod:
SciPy-transformationer
SciPy-funktioner som z-score används som en del av den anpassade transformationen för att standardisera prisfördelningen med medelvärde och standardavvikelse.
Se följande kod:
Begränsningsoptimering med NumPy och SciPy
Data Wrangler anpassade transformationer kan hantera avancerade transformationer som begränsningsoptimering genom att tillämpa SciPy-optimeringsfunktioner och kombinera SciPy med NumPy. I följande exempel visar priset som funktion av ålder ingen observerbar trend. Men optimering av restriktioner kan förändra biljettpriset som en funktion av ålder. Begränsningsvillkoret i detta fall är att det nya totalpriset förblir detsamma som det gamla totalpriset. Data Wrangler anpassade transformationer låter dig köra SciPy-optimeringsfunktionen för att bestämma den optimala koefficienten som kan förändra biljettpriset som en funktion av ålder under begränsade förhållanden.
Optimeringsdefinition, objektivdefinition och flera begränsningar kan nämnas som olika funktioner samtidigt som begränsningsoptimering formuleras i en anpassad Data Wrangler-transform med SciPy och NumPy. Anpassade transformationer kan också ta med olika lösaremetoder som är tillgängliga som en del av SciPy optimize-paketet. En ny transformerad variabel kan genereras genom att multiplicera den optimala koefficienten med den ursprungliga kolumnen och läggas till befintliga kolumner i Data Wrangler. Se följande kod:
Data Wranglers anpassade transformeringsfunktion har UI-kapaciteten att visa resultaten av SciPy-optimeringsfunktioner som värdet på optimal koefficient (eller flera koefficienter).
Anpassade transformationer med scikit-learn
scikit lära är en Python-modul för maskininlärning byggd ovanpå SciPy. Det är ett ML-bibliotek med öppen källkod som stöder övervakat och oövervakat lärande. Den tillhandahåller också olika verktyg för modellanpassning, dataförbehandling, modellval, modellutvärdering och många andra verktyg.
Diskretisering
Diskretisering (annars känd som kvantisering or binning) ger ett sätt att dela upp kontinuerliga funktioner i diskreta värden. Vissa datauppsättningar med kontinuerliga funktioner kan dra nytta av diskretisering, eftersom diskretisering kan omvandla datauppsättningen med kontinuerliga attribut till en med endast nominella attribut. One-hot kodade diskretiserade funktioner kan göra en modell mer uttrycksfull, samtidigt som tolkningsbarheten bibehålls. Till exempel kan förbearbetning med en diskretiserare introducera olinjäritet i linjära modeller.
I följande kod använder vi KBinsDiscretizer
för att diskretisera ålderskolumnen i 10 fack:
Du kan se papperskorgens kanter utskrivna på följande skärmdump.
One-hot-kodning
Värden i Embarked-kolumnerna är kategoriska värden. Därför måste vi representera dessa strängar som numeriska värden för att kunna utföra vår klassificering med vår modell. Vi skulle också kunna göra detta med en en-hot-kodningstransform.
Det finns tre värden för Embarked: S, C och Q. Vi representerar dessa med siffror. Se följande kod:
Städa upp
När du inte använder Data Wrangler är det viktigt att stänga av instansen som den körs på för att undvika extra avgifter.
Data Wrangler sparar automatiskt ditt dataflöde var 60:e sekund. För att undvika att förlora arbete, spara ditt dataflöde innan du stänger av Data Wrangler.
- För att spara ditt dataflöde i Studio, välj FilOch välj sedan Spara data Wrangler Flow.
- För att stänga av Data Wrangler-instansen, i Studio, välj Löpande instanser och kärnor.
- Enligt KÖR APPAR, välj avstängningsikonen bredvid sagemaker-data-wrangler-1.0-appen.
- Välja Stäng av allt att bekräfta.
Data Wrangler körs på en ml.m5.4xlarge instans. Denna instans försvinner från KÖRINSTANSER när du stänger av Data Wrangler-appen.
När du har stängt av Data Wrangler-appen måste den startas om nästa gång du öppnar en Data Wrangler-flödesfil. Detta kan ta några minuter.
Slutsats
I det här inlägget visade vi hur du kan använda anpassade transformationer i Data Wrangler. Vi använde biblioteken och ramverket i Data Wrangler-behållaren för att utöka de inbyggda datatransformeringsmöjligheterna. Exemplen i det här inlägget representerar en delmängd av de ramverk som används. Transformationerna i Data Wrangler-flödet kan nu skalas in till en pipeline för DataOps.
För att lära dig mer om hur du använder dataflöden med Data Wrangler, se Skapa och använd ett Data Wrangler-flöde och Amazon SageMaker Prissättning. För att komma igång med Data Wrangler, se Förbered ML-data med Amazon SageMaker Data Wrangler. För att lära dig mer om Autopilot och AutoML på SageMaker, besök Automatisera modellutveckling med Amazon SageMaker Autopilot.
Om författarna
Meenakshisundaram Thandavarayan är senior AI/ML-specialist med AWS. Han hjälper högteknologiska strategiska konton på deras AI- och ML-resa. Han brinner mycket för datadriven AI.
Sovik Kumar Nath är en AI/ML-lösningsarkitekt med AWS. Han har lång erfarenhet av end-to-end-designer och lösningar för maskininlärning; affärsanalys inom finansiell, operationell och marknadsanalys; sjukvård; försörjningskedjan; och IoT. Utanför jobbet tycker Sovik om att resa och titta på film.
Abigail är en mjukvaruutvecklingsingenjör på Amazon SageMaker. Hon brinner för att hjälpa kunder att förbereda sin data i DataWrangler och bygga distribuerade maskininlärningssystem. På fritiden tycker Abigail om att resa, vandra, åka skidor och baka.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/authoring-custom-transformations-in-amazon-sagemaker-data-wrangler-using-nltk-and-scipy/
- : har
- :är
- $UPP
- 1
- 10
- 100
- 7
- 8
- 9
- a
- Om Oss
- konton
- lagt till
- Annat
- adress
- avancerat
- Efter
- Åldrar
- AI
- AI-tjänster
- AI / ML
- Alla
- tillåter
- längs
- Även
- amason
- Amazon Comprehend
- Amazon SageMaker
- Amazon SageMaker Data Wrangler
- analys
- analytics
- analysera
- och
- Andrew
- Annan
- vilken som helst
- Apache
- app
- tillämpningar
- tillämpas
- Tillämpa
- tillvägagångssätt
- arkitektur
- ÄR
- AS
- At
- attribut
- Autentisering
- Författaren
- författarskap
- automatiskt
- AutoML
- tillgänglig
- AWS
- BE
- därför att
- blir
- varit
- innan
- fördel
- SOPTUNNA
- ombordstigning
- föra
- SLUTRESULTAT
- Byggnad
- byggt
- inbyggd
- företag
- by
- KAN
- kapacitet
- Vid
- fall
- vissa
- kedja
- byta
- Förändringar
- Välja
- klassificering
- koda
- Kodning
- samling
- Kolumn
- Kolonner
- kombinera
- kombinera
- Gemensam
- samfundet
- Företag
- fullborda
- förstå
- omfattande
- databehandling
- tillstånd
- villkor
- Bekräfta
- Nackdelar
- begränsningar
- innehålla
- Behållare
- innehåll
- kontinuerlig
- kunde
- Par
- skapa
- beställnings
- Kunder
- datum
- dataanalys
- Förberedelse av data
- data driven
- datauppsättningar
- Standard
- demonstreras
- Designa
- mönster
- Bestämma
- utveckla
- Utveckling
- utvecklar
- avvikelse
- olika
- Upptäckten
- diskutera
- distribueras
- fördelning
- dokumentera
- dokument
- inte
- domän
- ner
- lätt
- LÄTTANVÄND
- effektiv
- antingen
- element
- början till slut
- ingenjör
- Teknik
- berikande
- enheter
- enhet
- Miljö
- utvärdering
- Varje
- exempel
- exempel
- Utom
- Motionera
- befintliga
- erfarenhet
- uttrycksfull
- förlänga
- omfattande
- Omfattande erfarenhet
- extrahera
- SNABB
- snabbare
- Leverans
- Funktioner
- avgifter
- få
- Fil
- Filer
- finansiella
- montering
- flöda
- flöden
- Fokus
- fokusering
- följer
- efter
- För
- formulering
- Ramverk
- ramar
- Fri
- Frekvens
- från
- kul
- fungera
- funktioner
- generera
- genereras
- generatorer
- skaffa sig
- hantera
- Har
- he
- hälso-och sjukvård
- hjälpa
- hjälper
- hi-tech
- högnivå
- Hem
- Hur ser din drömresa ut
- Men
- html
- http
- HTTPS
- humant
- IKON
- identifierar
- identifiera
- Identitet
- bild
- importera
- med Esport
- importera
- förbättra
- in
- I andra
- informationen
- insikter
- installera
- exempel
- integrera
- integrering
- Intelligens
- gränssnitt
- införa
- iot
- IT
- Jobb
- resa
- jpg
- Nyckel
- känd
- språk
- Efternamn
- ledande
- LÄRA SIG
- inlärning
- bibliotek
- Bibliotek
- tycka om
- liten
- förlora
- Maskinen
- maskininlärning
- upprätthålla
- göra
- många
- Marknadsföring
- massiv
- matematisk
- Maj..
- nämnts
- metoder
- kanske
- minuter
- ML
- modell
- modeller
- Modulerna
- Moduler
- mer
- flytta
- Filmer
- multipel
- multiplicerande
- namn
- namn
- Natural
- Naturlig språkbehandling
- Behöver
- Nya
- Nästa
- nlp
- nod
- noder
- anteckningsbok
- antal
- nummer
- numpy
- mål
- of
- erbjuda
- Gamla
- on
- Ombord
- Onboarding
- ONE
- öppet
- öppen källkod
- operativa
- optimala
- optimering
- Optimera
- beställa
- ursprungliga
- Övriga
- annat
- vår
- utanför
- över
- egen
- paket
- paket
- pandor
- del
- brinner
- Utföra
- fraser
- rörledning
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- plus
- Populära
- Inlägg
- praxis
- Förbered
- Skriva ut
- bearbetning
- Produktion
- profilering
- Program
- ge
- ger
- Syftet
- Tryck
- Python
- kvalitet
- Snabbt
- slumpmässig
- Raw
- pålitlig
- resterna
- representerar
- respons
- Resultat
- avkastning
- översyn
- rot
- Körning
- s
- sagemaker
- Samma
- Exempeldatauppsättning
- Save
- scenarier
- vetenskaplig
- scikit lära
- skript
- sekunder
- säkert
- Val
- senior
- separat
- service
- Tjänster
- inställningar
- inställning
- Dela
- skall
- show
- visas
- Visar
- stänga
- avstängning
- signera
- Signal
- Enkelt
- förenkla
- enda
- Mjukvara
- mjukvaruutveckling
- lösning
- Lösningar
- några
- Källa
- Källor
- Gnista
- speciell
- specialist
- Snurra
- delas
- kvadrat
- standard
- starta
- igång
- statistik
- Steg
- Steg
- förvaring
- misslyckande
- Strategisk
- strukturering
- studio
- sådana
- svit
- leverera
- leveranskedjan
- Stöder
- System
- bord
- Ta
- tar
- uppgift
- Teknisk
- den där
- Smakämnen
- källan
- deras
- därför
- Dessa
- tre
- tid
- till
- token
- tokenization
- tokens
- verktyg
- topp
- Totalt
- Förvandla
- Transformation
- transformationer
- transformerad
- omvandla
- Traveling
- Trend
- ui
- under
- användning
- användningsfall
- Begagnade
- verktyg
- värde
- Värden
- olika
- Besök
- tittar
- Sätt..
- sätt
- VÄL
- som
- medan
- kommer
- med
- inom
- utan
- ord
- Arbete
- arbetsflöden
- skriva
- skriven
- Om er
- Din
- zephyrnet