Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPyn avulla

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPyn avulla

”Yritysten tulisi keskittyä koodiin keskittymisen sijaan systemaattisten suunnittelukäytäntöjen kehittämiseen tietojen parantamiseksi luotettavilla, tehokkailla ja systemaattisilla tavoilla. Toisin sanoen yritysten on siirryttävä mallikeskeisestä lähestymistavasta datakeskeiseen lähestymistapaan. – Andrew Ng

Tietokeskeisessä tekoälyssä rakennetaan tekoälyjärjestelmiä laadukkaalla tiedolla, johon kuuluu tietojen valmistelu ja ominaisuussuunnittelu. Tämä voi olla työläs tehtävä, joka sisältää tietojen keräämisen, löytämisen, profiloinnin, puhdistamisen, jäsentämisen, muuntamisen, rikastamisen, validoinnin ja tietojen turvallisen tallentamisen.

Amazon SageMaker Data Wrangler on palvelu sisällä Amazon SageMaker Studio joka tarjoaa päästä päähän -ratkaisun tietojen tuontiin, valmisteluun, muuntamiseen, esittelyyn ja analysointiin käyttämällä vain vähän tai ei lainkaan koodausta. Voit integroida Data Wrangler -tietojen valmisteluvirran koneoppimisen (ML) työnkulkuihisi yksinkertaistaaksesi tietojen esikäsittelyä ja ominaisuussuunnittelua ja vie tietojen valmistelun tuotantoon nopeammin ilman, että sinun tarvitsee luoda PySpark-koodia, asentaa Apache Sparkia tai muodostaa klustereita.

Skenaarioissa, joissa sinun on lisättävä omia mukautettuja komentosarjoja datamuunnoksia varten, voit kirjoittaa muunnoslogiikkasi Pandasiin, PySparkiin tai PySpark SQL:iin. Data Wrangler tukee nyt NLTK- ja SciPy-kirjastoja mukautettujen muunnosten luomiseen tekstidatan valmistelemiseksi ML:ää varten ja rajoitusten optimoinnin suorittamiseksi.

Saatat törmätä skenaarioihin, joissa sinun on lisättävä omat mukautetut komentosarjat tietojen muuntamista varten. Data Wranglerin mukautetun muunnosominaisuuden avulla voit kirjoittaa muunnoslogiikkasi Pandasiin, PySparkiin tai PySpark SQL:iin.

Tässä viestissä keskustelemme siitä, kuinka voit kirjoittaa mukautetun muunnosi NLTK:ssa valmistellaksesi tekstidataa ML:ää varten. Jaamme myös esimerkin mukautetun koodin muunnoksesta käyttämällä muita yleisiä kehyksiä, kuten NLTK, NumPy, SciPy ja scikit-learn sekä AWS AI Services. Tätä harjoitusta varten käytämme Titanic-tietojoukko, suosittu tietojoukko ML-yhteisössä, joka on nyt lisätty nimellä a näytetiedosto Data Wranglerissa.

Ratkaisun yleiskatsaus

Data Wrangler tarjoaa yli 40 sisäänrakennettua liitintä tietojen tuontia varten. Kun tiedot on tuotu, voit rakentaa data-analyysejä ja muunnoksia käyttämällä yli 300 sisäänrakennettua muunnosa. Voit sitten luoda teollistettuja putkistoja ominaisuuksien siirtämiseksi Amazonin yksinkertainen tallennuspalvelu (Amazon S3) tai Amazon SageMaker -ominaisuuskauppa. Seuraava kaavio näyttää päästä päähän korkean tason arkkitehtuurin.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Edellytykset

Data Wrangler on SageMaker-ominaisuus, joka on saatavana sisällä Amazon SageMaker Studio. Voit seurata Studion käyttöönottoprosessi Studio-ympäristön ja muistikirjojen pyörittämiseen. Vaikka voit valita useista todennusmenetelmistä, yksinkertaisin tapa luoda Studio-verkkotunnus on noudattaa Pika-aloitusohjeet. Pika-aloitus käyttää samoja oletusasetuksia kuin Studion vakioasetukset. Voit myös halutessasi käyttää AWS IAM Identity Center (AWS Single Sign-On:n seuraaja) todennusta varten (katso Sisääntulo Amazon SageMaker -verkkotunnukseen IAM Identity Centerin avulla).

Tuo Titanic-tietojoukko

Käynnistä Studio-ympäristösi ja luo uusi Data Wrangler -virtaus. Voit joko tuoda oman tietojoukkosi tai käyttää esimerkkitietojoukkoa (Titanic) seuraavan kuvakaappauksen mukaisesti. Data Wranglerin avulla voit tuoda tietojoukkoja eri tietolähteistä. Käyttötapauksessamme tuomme näytetietojoukon S3-ämpäriin.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Tuonnin jälkeen näet kaksi solmua (lähdesolmu ja tietotyyppisolmu) tietovirrassa. Data Wrangler tunnistaa automaattisesti tietotyypin kaikille tietojoukon sarakkeille.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Mukautetut muunnokset NLTK:lla

Datan valmisteluun ja ominaisuuksien suunnitteluun Data Wranglerin avulla voit käyttää yli 300 sisäänrakennettua muunnosa tai rakentaa omia mukautettuja muunnoksia. Mukautetut muunnokset voidaan kirjoittaa erillisinä vaiheina Data Wranglerissa. Niistä tulee osa Data Wranglerin .flow-tiedostoa. Mukautettu muunnosominaisuus tukee Pythonia, PySparkia ja SQL:ää koodinpätkien eri vaiheina. Kun muistikirjatiedostot (.ipynb) on luotu .flow-tiedostosta tai .flow-tiedostoa on käytetty resepteinä, mukautetut muunnoskoodinpätkät säilyvät ilman muutoksia. Tämä Data Wrangler -malli mahdollistaa mukautettujen muunnoksien osaksi SageMaker Processing -työtä massiivisten tietojoukkojen käsittelemiseksi mukautetuilla muunnoksilla.

Titanic-tietojoukossa on pari ominaisuutta (nimi ja home.dest), jotka sisältävät tekstitietoja. Käytämme NLTK jakaa nimisarakkeen ja erottaaksesi sukunimen ja tulostaaksesi sukunimien tiheyden. NLTK on johtava alusta Python-ohjelmien rakentamiseen ihmisten kielen tietojen kanssa. Se tarjoaa helppokäyttöiset käyttöliittymät yli 50 tutkimusaineistoa ja sanastoa kuten WordNet, sekä joukko tekstinkäsittelykirjastoja luokittelua, tokenointia, johteita, merkintöjä, jäsentämistä ja semanttista päättelyä varten sekä kääreitä teollisen lujan luonnollisen kielen käsittelyn (NLP) kirjastoille.

Lisää uusi muunnos suorittamalla seuraavat vaiheet:

  1. Valitse plusmerkki ja valitse Lisää muunnos.
  2. Valita Lisää vaihe Ja valitse Mukautettu muunnos.

Voit luoda mukautetun muunnoksen käyttämällä Pandasia, PySparkia, Pythonin käyttäjän määrittämiä toimintoja ja SQL PySparkia.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

  1. Valita Python (pandat) ja lisää seuraava koodi poimiaksesi sukunimen nimisarakkeesta:
    import nltk
    nltk.download('punkt')
    tokens = [nltk.word_tokenize(name) for name in df['Name']] # Extract the last names of the passengers
    df['last_name'] = [token[0] for token in tokens]

  2. Valita preview tarkastella tuloksia.

Seuraava kuvakaappaus näyttää last_name kolonni uutettu.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

  1. Lisää toinen mukautettu muunnosvaihe sukunimien tiheysjakauman tunnistamiseksi käyttämällä seuraavaa koodia:
    import nltk
    fd = nltk.FreqDist(df["last_name"])
    print(fd.most_common(10))

  2. Valita preview tarkistaaksesi taajuuden tulokset.Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Mukautetut muunnokset AWS AI -palveluilla

AWS:n esikoulutetut tekoälypalvelut tarjoavat valmiita älykkyyttä sovelluksiisi ja työnkulkuihisi. AWS AI -palvelut integroituvat helposti sovelluksiisi moniin yleisiin käyttötapauksiin. Voit nyt käyttää AWS AI -palveluiden ominaisuuksia mukautettuna muunnosvaiheena Data Wranglerissa.

Amazonin käsitys käyttää NLP:tä poimimaan näkemyksiä asiakirjojen sisällöstä. Se kehittää oivalluksia tunnistamalla asiakirjan entiteetit, avainsanat, kielen, tunteet ja muut yleiset elementit.

Käytämme Amazon Comprehendia kokonaisuuksien poimimiseen nimisarakkeesta. Suorita seuraavat vaiheet:

  1. Lisää mukautettu muunnosvaihe.
  2. Valita Python (pandat).
  3. Syötä seuraava koodi purkaaksesi entiteetit:
    import boto3
    comprehend = boto3.client("comprehend") response = comprehend.detect_entities(LanguageCode = 'en', Text = df['name'].iloc[0]) for entity in response['Entities']:
    print(entity['Type'] + ":" + entity["Text"])

  4. Valita preview ja visualisoida tulokset.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Olemme nyt lisänneet kolme mukautettua muunnosta Data Wrangleriin.

  1. Valita Tietovirta visualisoidaksesi päästä päähän -tietovirran.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Mukautetut muunnokset NumPyn ja SciPyn avulla

nuhjuinen on avoimen lähdekoodin kirjasto Pythonille, joka tarjoaa kattavia matemaattisia funktioita, satunnaislukugeneraattoreita, lineaarisia algebrarutiineja, Fourier-muunnoksia ja paljon muuta. SciPy on avoimen lähdekoodin Python-kirjasto, jota käytetään tieteelliseen laskemiseen ja tekniseen laskemiseen ja joka sisältää moduuleja optimointiin, lineaarista algebraa, integrointia, interpolointia, erikoistoimintoja, nopeaa Fourier-muunnosta (FFT), signaalin ja kuvankäsittelyä, ratkaisijoita ja paljon muuta.

Data Wranglerin mukautettujen muunnosten avulla voit yhdistää Pythonin, PySparkin ja SQL:n eri vaiheiksi. Seuraavassa Data Wrangler -kulussa erilaisia ​​Python-pakettien, NumPyn ja SciPyn toimintoja käytetään Titanic-tietojoukossa useana vaiheena.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

NumPy-muunnokset

Titanic-tietojoukon hintasarakkeessa on eri matkustajien nousuhinnat. Hintasarakkeen histogrammi näyttää tasaisen jakautumisen viimeistä roskakoria lukuun ottamatta. Käyttämällä NumPy-muunnoksia, kuten log- tai neliöjuuri, voimme muuttaa jakaumaa (kuten neliöjuuren muunnos osoittaa).

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai. Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Katso seuraava koodi:

import pandas as pd
import numpy as np
df["fare_log"] = np.log(df["fare_interpolate"])
df["fare_sqrt"] = np.sqrt(df["fare_interpolate"])
df["fare_cbrt"] = np.cbrt(df["fare_interpolate"])

SciPy-muunnokset

SciPy-funktioita, kuten z-scorea, käytetään osana mukautettua muunnosa hintajakauman standardoimiseksi keskiarvon ja keskihajonnan mukaan.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Katso seuraava koodi:

df["fare_zscore"] = zscore(df["fare_interpolate"])
from scipy.stats import zscore

Rajoitusten optimointi NumPyn ja SciPyn avulla

Data Wranglerin mukautetut muunnokset voivat käsitellä edistyneitä muunnoksia, kuten rajoitusten optimointia käyttämällä SciPy-optimointitoimintoja ja yhdistämällä SciPyn NumPyn kanssa. Seuraavassa esimerkissä hinta iän funktiona ei osoita havaittavaa trendiä. Rajoituksen optimointi voi kuitenkin muuttaa hintaa iän funktiona. Rajoitusehto tässä tapauksessa on, että uusi kokonaishinta pysyy samana kuin vanha kokonaishinta. Data Wranglerin mukautettujen muunnosten avulla voit suorittaa SciPy-optimointitoiminnon määrittääksesi optimaalisen kertoimen, joka voi muuttaa hintaa iän funktiona rajoitetuissa olosuhteissa.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai. Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Optimoinnin määritelmä, tavoitteen määrittely ja useat rajoitukset voidaan mainita eri funktioina, kun rajoitusten optimointi muotoillaan mukautetussa Data Wrangler -muunnoksessa käyttämällä SciPyä ja NumPyä. Mukautetut muunnokset voivat myös tuoda erilaisia ​​ratkaisumenetelmiä, jotka ovat saatavilla osana SciPy-optimointipakettia. Uusi muunnettu muuttuja voidaan luoda kertomalla optimaalinen kerroin alkuperäisellä sarakkeella ja lisätä se Data Wranglerin olemassa oleviin sarakkeisiin. Katso seuraava koodi:

import numpy as np
import scipy.optimize as opt
import pandas as pd df2 = pd.DataFrame({"Y":df["fare_interpolate"], "X1":df["age_interpolate"]}) # optimization defination
def main(df2):
x0 = [0.1]
res = opt.minimize(fun=obj, x0=x0, args=(df2), method="SLSQP", bounds=[(0,50)], constraints=cons)
return res # objective function
def obj(x0, df2):
sumSquares = np.sum(df2["Y"] - x0*df2["X1"])
return sumSquares # constraints
def constraint1(x0):
sum_cons1 = np.sum(df2["Y"] - x0*df2["X1"]) - 0
return sum_cons1
con1 = {'type': 'eq', 'fun': constraint1}
cons = ([con1]) print(main(df2)) df["new_fare_age_optimized"]=main(df2).x*df2["X1"]

Data Wranglerin mukautetun muunnosominaisuuden käyttöliittymä pystyy näyttämään SciPy-optimointitoimintojen tulokset, kuten optimaalisen kertoimen (tai useiden kertoimien) arvon.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Mukautetut muunnokset scikit-learnillä

scikit opittava on Python-moduuli koneoppimiseen, joka on rakennettu SciPyn päälle. Se on avoimen lähdekoodin ML-kirjasto, joka tukee ohjattua ja valvomatonta oppimista. Se tarjoaa myös erilaisia ​​työkaluja mallien sovittamiseen, tietojen esikäsittelyyn, mallien valintaan, mallin arviointiin ja moniin muihin apuohjelmiin.

Diskretisointi

Diskretisointi (tunnetaan muuten nimellä kvantisointi or binnausta) tarjoaa tavan osioida jatkuvia ominaisuuksia erillisiin arvoihin. Tietyt tietojoukot, joissa on jatkuvia ominaisuuksia, voivat hyötyä diskretisoinnista, koska diskretisointi voi muuttaa jatkuvien attribuuttien tietojoukon sellaiseksi, jossa on vain nimelliset attribuutit. Yksinkertaisesti koodatut diskretisoidut ominaisuudet voivat tehdä mallista ilmaisuvoimaisemman säilyttäen samalla tulkittavuuden. Esimerkiksi esikäsittely diskretisoijalla voi tuoda epälineaarisuutta lineaarisiin malleihin.

Seuraavassa koodissa käytämme KBinsDiscretizer ikäsarakkeen eristäminen 10 laatikkoon:

# Table is available as variable `df`
from sklearn.preprocessing import KBinsDiscretizer
import numpy as np
# discretization transform the raw data
df = df.dropna()
kbins = KBinsDiscretizer(n_bins=10, encode='ordinal', strategy='uniform')
ages = np.array(df["age"]).reshape(-1, 1)
df["age"] = kbins.fit_transform(ages)
print(kbins.bin_edges_)

Näet säiliön reunat tulostettuna seuraavassa kuvakaappauksessa.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

One-hot koodaus

Embarked-sarakkeiden arvot ovat kategorisia arvoja. Siksi meidän on esitettävä nämä merkkijonot numeerisina arvoina, jotta voimme suorittaa luokittelumme mallillamme. Voisimme tehdä tämän myös käyttämällä one-hot-koodausmuunnosta.

Embarkedilla on kolme arvoa: S, C ja Q. Esitämme nämä numeroilla. Katso seuraava koodi:

# Table is available as variable `df`
from sklearn.preprocessing import LabelEncoder le_embarked = LabelEncoder()
le_embarked.fit(df["embarked"]) encoded_embarked_training = le_embarked.transform(df["embarked"])
df["embarked"] = encoded_embarked_training

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Puhdistaa

Kun et käytä Data Wrangleria, on tärkeää sulkea ilmentymä, jossa se toimii, jotta vältytään lisäkuluilta.

Data Wrangler tallentaa tietovirtasi automaattisesti 60 sekunnin välein. Välttääksesi työn menettämisen tallenna tietovirtasi ennen Data Wranglerin sammuttamista.

  1. Tallenna tietovirtasi Studioon valitsemalla filee, valitse sitten Tallenna tiedot Wrangler Flow.
  2. Sulje Data Wrangler -esiintymä Studiossa valitsemalla Käynnistävät instanssit ja ytimet.
  3. Alle KÄYNNISSÄ SOVELLUKSET, valitse sammutuskuvake sagemaker-data-wrangler-1.0-sovelluksen vierestä.
  4. Valita Sammuta kaikki vahvistaa.

Data Wrangler toimii ml.m5.4xlarge-esiintymässä. Tämä tapaus katoaa KÄYNNISSÄ kun suljet Data Wrangler -sovelluksen.

Kun sammutat Data Wrangler -sovelluksen, se on käynnistettävä uudelleen, kun seuraavan kerran avaat Data Wrangler -virtatiedoston. Tämä voi kestää muutaman minuutin.

Yhteenveto

Tässä viestissä osoitimme, kuinka voit käyttää mukautettuja muunnoksia Data Wranglerissa. Käytimme Data Wrangler -säilön kirjastoja ja puitteita laajentaaksemme sisäänrakennettuja tiedonmuunnosominaisuuksia. Tämän viestin esimerkit edustavat käytettyjen kehysten osajoukkoa. Data Wrangler -virran muunnokset voidaan nyt skaalata DataOpsin liukuhihnaksi.

Lisätietoja tietovirtojen käyttämisestä Data Wranglerin kanssa on kohdassa Luo ja käytä Data Wrangler -kulkua ja Amazon SageMaker -hinnoittelu. Aloita Data Wranglerin käyttö katsomalla Valmista ML-tiedot Amazon SageMaker Data Wrangler -sovelluksella. Lisätietoja Autopilotista ja AutoML:stä SageMakerissa on osoitteessa Automatisoi mallin kehitys Amazon SageMaker Autopilotilla.


Tietoja kirjoittajista

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Meenakshisundaram Thandavarayan on vanhempi AI/ML-asiantuntija, jolla on AWS. Hän auttaa huipputeknologian strategisia tilejä heidän tekoäly- ja ML-matkallaan. Hän on erittäin intohimoinen tietopohjaiseen tekoälyyn.

 Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Sovik Kumar Nath on AI/ML-ratkaisuarkkitehti AWS:n kanssa. Hänellä on laaja kokemus päästä päähän -suunnittelusta ja -ratkaisuista koneoppimiseen; Liiketoiminnan analytiikka rahoitus-, toiminta- ja markkinointianalytiikan puitteissa; terveydenhuolto; toimitusketju; ja IoT. Työn ulkopuolella Sovik nauttii matkustamisesta ja elokuvien katselusta.

Mukautettujen muunnosten tekeminen Amazon SageMaker Data Wranglerissa NLTK:n ja SciPy PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Abigail on ohjelmistokehitysinsinööri Amazon SageMakerissa. Hän on intohimoinen auttaa asiakkaita valmistelemaan tietojaan DataWranglerissa ja rakentamaan hajautettuja koneoppimisjärjestelmiä. Vapaa-ajallaan Abigail nauttii matkustamisesta, vaeltamisesta, hiihtämisestä ja leipomisesta.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen