Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler NLTK ja SciPy abil

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler NLTK ja SciPy abil

"Selle asemel, et keskenduda koodile, peaksid ettevõtted keskenduma süstemaatiliste tehniliste tavade väljatöötamisele andmete täiustamiseks viisil, mis on usaldusväärne, tõhus ja süstemaatiline. Teisisõnu peavad ettevõtted liikuma mudelikeskselt lähenemiselt andmekesksele lähenemisele. – Andrew Ng

Andmekeskne tehisintellekti lähenemisviis hõlmab kvaliteetsete andmetega tehisintellektisüsteemide ehitamist, mis hõlmab andmete ettevalmistamist ja funktsioonide kavandamist. See võib olla tüütu ülesanne, mis hõlmab andmete kogumist, avastamist, profiilide koostamist, puhastamist, struktureerimist, teisendamist, rikastamist, valideerimist ja andmete turvalist salvestamist.

Amazon SageMaker Data Wrangler on teenus Amazon SageMaker Studio mis pakub täielikku lahendust andmete importimiseks, ettevalmistamiseks, teisendamiseks, esitlemiseks ja analüüsimiseks, kasutades vähest või üldse mitte kodeerimist. Saate integreerida Data Wrangleri andmete ettevalmistamise voo oma masinõppe (ML) töövoogudesse, et lihtsustada andmete eeltöötlust ja funktsioonide inseneritööd, viies andmete ettevalmistamise kiiremini tootmisse, ilma et peaksite PySparki koodi autoreerima, Apache Sparki installima või klastreid looma.

Stsenaariumide puhul, kus peate andmete teisendamiseks lisama oma kohandatud skripte, saate kirjutada oma teisendusloogika Pandas, PySparkis või PySpark SQL-is. Data Wrangler toetab nüüd NLTK ja SciPy teeke kohandatud teisenduste loomiseks, et valmistada ette tekstiandmeid ML-i jaoks ja teostada piirangute optimeerimist.

Võite kokku puutuda stsenaariumidega, kus peate andmete teisendamiseks lisama oma kohandatud skriptid. Data Wrangleri kohandatud teisendusvõimalusega saate kirjutada oma teisendusloogika Pandas, PySparkis, PySpark SQL-is.

Selles postituses arutame, kuidas saate kirjutada oma kohandatud teisenduse NLTK-s, et valmistada ette tekstiandmed ML-i jaoks. Jagame ka mõnda kohandatud koodi teisenduse näidet, kasutades muid levinud raamistikke, nagu NLTK, NumPy, SciPy ja scikit-learn ning AWS AI teenused. Selle harjutuse jaoks kasutame Titanicu andmestik, populaarne andmestik ML-i kogukonnas, mis on nüüd lisatud kui a näidisandmekogum Data Wrangleris.

Lahenduse ülevaade

Data Wrangler pakub andmete importimiseks üle 40 sisseehitatud pistiku. Pärast andmete importimist saate luua oma andmete analüüsi ja teisendusi enam kui 300 sisseehitatud teisenduse abil. Seejärel saate funktsioonide kasutamiseks luua tööstuslikud torujuhtmed Amazoni lihtne salvestusteenus (Amazon S3) või Amazon SageMakeri funktsioonipood. Järgmine diagramm näitab täielikku kõrgtaseme arhitektuuri.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Eeldused

Data Wrangler on SageMakeri funktsioon, mis on saadaval Amazon SageMaker Studio. Saate jälgida Stuudio liitumisprotsess Studio keskkonna ja märkmikute keerutamiseks. Kuigi saate valida mõne autentimismeetodi vahel, on kõige lihtsam viis Studio domeeni loomiseks järgida Kiirjuhised. Kiirkäivitus kasutab samu vaikesätteid, mis Studio standardseadistus. Saate valida ka pardal oleva kasutamise AWS IAM identiteedikeskus (AWS Single Sign-On järglane) autentimiseks (vt Sisseehitatud Amazon SageMakeri domeeniga, kasutades IAM-i identiteedikeskust).

Importige Titanicu andmestik

Käivitage oma Studio keskkond ja looge uus Data Wrangleri voog. Saate importida oma andmestiku või kasutada näidisandmestikku (Titanic), nagu on näidatud järgmisel ekraanipildil. Data Wrangler võimaldab importida andmekogumeid erinevatest andmeallikatest. Meie kasutusjuhtumi jaoks impordime näidisandmestiku S3 ämbrist.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Pärast importimist näete andmevoos kahte sõlme (allikasõlm ja andmetüübi sõlm). Data Wrangler tuvastab andmestiku kõigi veergude andmetüübi automaatselt.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Kohandatud teisendused NLTK-ga

Andmete ettevalmistamiseks ja funktsioonide projekteerimiseks Data Wrangleriga saate kasutada üle 300 sisseehitatud teisenduse või luua oma kohandatud teisendusi. Kohandatud teisendused saab kirjutada eraldi sammudena Data Wrangleris. Need muutuvad Data Wrangleri .flow-faili osaks. Kohandatud teisendusfunktsioon toetab Pythoni, PySparki ja SQL-i koodilõikude erinevate etappidena. Pärast märkmikufailide (.ipynb) genereerimist .flow-failist või .flow-faili kasutamist retseptidena jäävad kohandatud teisenduskoodilõigud muudatusi tegemata. See Data Wrangleri disain võimaldab kohandatud teisendustest saada osa SageMakeri töötlemistööst, et töödelda kohandatud teisendustega suuri andmekogumeid.

Titanicu andmekogumil on paar funktsiooni (nimi ja home.dest), mis sisaldavad tekstiteavet. Me kasutame NLTK nime veeru poolitamiseks ja perekonnanime eraldamiseks ning perekonnanimede sageduse printimiseks. NLTK on juhtiv platvorm Pythoni programmide loomiseks inimkeele andmetega töötamiseks. See pakub hõlpsasti kasutatavaid liideseid üle 50 korpuse ja leksikaalse ressursi nagu WordNet koos tekstitöötlusteekide komplektiga klassifitseerimiseks, märgistamiseks, tüve moodustamiseks, märgistamiseks, sõelumiseks ja semantilisteks arutlusteks ning ümbristeks tööstusliku tugevusega loomuliku keele töötlemise (NLP) teekide jaoks.

Uue teisenduse lisamiseks toimige järgmiselt.

  1. Valige plussmärk ja valige Lisage teisendus.
  2. Vali Lisa samm Ja vali Kohandatud teisendus.

Saate luua kohandatud teisenduse, kasutades Pandasi, PySparki, Pythoni kasutaja määratud funktsioone ja SQL PySparki.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

  1. Vali Python (Pandad) ja lisage perekonnanime veerust eraldamiseks järgmine kood:
    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. Vali Eelvaade tulemuste ülevaatamiseks.

Järgmine ekraanipilt näitab last_name veerg ekstraheeritud.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

  1. Lisage perekonnanimede sagedusjaotuse tuvastamiseks veel üks kohandatud teisendusetapp, kasutades järgmist koodi:
    import nltk
    fd = nltk.FreqDist(df["last_name"])
    print(fd.most_common(10))

  2. Vali Eelvaade sageduse tulemuste ülevaatamiseks.Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Kohandatud teisendused AWS AI teenustega

AWS-i eelkoolitatud AI-teenused pakuvad teie rakenduste ja töövoogude jaoks valmis intelligentsust. AWS AI teenused on hõlpsasti integreeritavad teie rakendustega, et lahendada paljusid levinud kasutusjuhtumeid. Nüüd saate kasutada AWS AI teenuste võimalusi Data Wrangleri kohandatud teisendusetapina.

Amazoni mõistmine kasutab NLP-d dokumentide sisu kohta ülevaate saamiseks. See arendab teadmisi, tuvastades dokumendi olemid, võtmefraasid, keele, tunded ja muud levinud elemendid.

Üksuste nimeveerust eraldamiseks kasutame Amazon Comprehendi. Tehke järgmised sammud.

  1. Lisage kohandatud teisendusetapp.
  2. Vali Python (Pandad).
  3. Olemite eraldamiseks sisestage järgmine kood:
    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. Vali Eelvaade ja visualiseerida tulemusi.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Oleme nüüd Data Wranglerisse lisanud kolm kohandatud teisendust.

  1. Vali Andmevoog otspunktidevahelise andmevoo visualiseerimiseks.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Kohandatud teisendused NumPy ja SciPy abil

tuim on Pythoni avatud lähtekoodiga teek, mis pakub põhjalikke matemaatilisi funktsioone, juhuslike arvude generaatoreid, lineaaralgebra rutiine, Fourier' teisendusi ja palju muud. SciPy on avatud lähtekoodiga Pythoni teek, mida kasutatakse teaduslikuks andmetöötluseks ja tehniliseks andmetöötluseks ning mis sisaldab optimeerimismooduleid, lineaaralgebrat, integreerimist, interpoleerimist, erifunktsioone, kiiret Fourier' teisendust (FFT), signaali- ja pilditöötlust, lahendajaid ja palju muud.

Data Wrangleri kohandatud teisendused võimaldavad kombineerida Pythoni, PySparki ja SQL-i erinevate sammudena. Järgmises Data Wrangleri voos rakendatakse Pythoni pakettide, NumPy ja SciPy erinevaid funktsioone Titanicu andmestikus mitme sammuna.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

NumPy teisendused

Titanicu andmestiku piletihinna veerus on erinevate reisijate pardahinnad. Piletihinna veeru histogramm näitab ühtlast jaotust, välja arvatud viimane prügikast. Rakendades NumPy teisendusi, nagu log või ruutjuur, saame jaotust muuta (nagu näitab ruutjuurteisendus).

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Vaadake järgmist 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 teisendused

SciPy funktsioone, nagu z-skoor, rakendatakse kohandatud teisenduse osana, et standardida piletite jaotus keskmise ja standardhälbega.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Vaadake järgmist koodi:

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

Piirangute optimeerimine NumPy ja SciPy abil

Data Wrangleri kohandatud teisendused saavad hakkama täiustatud teisendustega, nagu piirangute optimeerimine, rakendades SciPy optimeerimisfunktsioone ja kombineerides SciPy ja NumPy. Järgmises näites ei näita piletihind vanuse funktsioonina jälgitavat trendi. Piirangute optimeerimine võib aga muuta piletihinda vanuse funktsiooniks. Piiranguks on antud juhul see, et uus piletihind jääb samaks kui vana koguhind. Data Wrangleri kohandatud teisendused võimaldavad teil käivitada SciPy optimeerimisfunktsiooni, et määrata optimaalne koefitsient, mis võib piirangutingimuste korral muuta piletihinda vanuse funktsiooniks.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai. Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Optimeerimise määratlust, eesmärgi määratlust ja mitut piirangut võib mainida erinevate funktsioonidena, formuleerides piirangute optimeerimist Data Wrangleri kohandatud teisenduses, kasutades SciPy ja NumPy. Kohandatud teisendused võivad tuua ka erinevaid lahendamismeetodeid, mis on saadaval SciPy optimeerimispaketi osana. Uue teisendatud muutuja saab genereerida, korrutades optimaalse koefitsiendi algse veeruga ja lisades selle Data Wrangleri olemasolevatele veergudele. Vaadake järgmist 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 Wrangleri kohandatud teisendusfunktsioonil on kasutajaliidese võime kuvada SciPy optimeerimisfunktsioonide tulemusi, näiteks optimaalse koefitsiendi väärtust (või mitut koefitsienti).

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Kohandatud teisendused scikit-learniga

skikit õppima on Pythoni moodul masinõppeks, mis on ehitatud SciPy peale. See on avatud lähtekoodiga ML-teek, mis toetab juhendatud ja järelevalveta õppimist. Samuti pakub see erinevaid tööriistu mudelite sobitamiseks, andmete eeltöötluseks, mudelite valimiseks, mudeli hindamiseks ja paljudeks muudeks utiliitideks.

Diskretiseerimine

Diskretiseerimine (muidu tuntud kui kvantimine or binning) annab võimaluse pidevate funktsioonide jaotamiseks diskreetseteks väärtusteks. Teatud pidevate funktsioonidega andmekogumid võivad kasu saada diskretiseerimisest, kuna diskreteerimine võib muuta pidevate atribuutide andmekogumi selliseks, millel on ainult nominaalsed atribuudid. Ühekordselt kodeeritud diskreetsed funktsioonid võivad muuta mudeli väljendusrikkamaks, säilitades samal ajal tõlgendatavuse. Näiteks eeltöötlemine diskretiseerijaga võib lisada lineaarsetele mudelitele mittelineaarsuse.

Järgmises koodis kasutame KBinsDiscretizer vanuse veeru diskreteerimiseks 10 prügikasti:

# 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_)

Järgmisel ekraanipildil on prinditud prügikasti servad.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Üks kuum kodeering

Väärtused veergudes Embarked on kategoorilised väärtused. Seetõttu peame oma mudeliga klassifitseerimiseks esitama need stringid arvväärtustena. Saaksime seda teha ka ühe kuuma kodeeringu teisenduse abil.

Embarkedil on kolm väärtust: S, C ja Q. Esitame need numbritega. Vaadake järgmist 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

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Koristage

Kui te Data Wranglerit ei kasuta, on lisatasude vältimiseks oluline sulgeda eksemplar, millel see töötab.

Data Wrangler salvestab teie andmevoo automaatselt iga 60 sekundi järel. Töö kaotamise vältimiseks salvestage andmevoog enne Data Wrangleri väljalülitamist.

  1. Andmevoo salvestamiseks Studios valige fail, siis vali Salvesta andmete Wrangler Flow.
  2. Data Wrangleri eksemplari sulgemiseks Studios valige Eksemplaride ja tuumade käitamine.
  3. alla RAKENDUSTE TÖÖTAMINE, valige rakenduse sagemaker-data-wrangler-1.0 kõrval seiskamise ikoon.
  4. Vali Pange kõik kinni kinnitada.

Data Wrangler töötab ml.m5.4xsuurel eksemplaril. See juhtum kaob JOOKSUJUHTUMID kui sulgete rakenduse Data Wrangler.

Pärast Data Wrangleri rakenduse sulgemist peab see järgmisel korral Data Wrangleri voofaili avamisel taaskäivitama. Selleks võib kuluda mõni minut.

Järeldus

Selles postituses näitasime, kuidas saate Data Wrangleris kohandatud teisendusi kasutada. Sisseehitatud andmete teisendamise võimaluste laiendamiseks kasutasime Data Wrangleri konteineris olevaid teeke ja raamistikku. Selle postituse näited esindavad kasutatud raamistike alamhulka. Data Wrangleri voo teisendusi saab nüüd skaleerida DataOpsi konveieriks.

Lisateavet andmevoogude kasutamise kohta koos Data Wrangleriga leiate artiklist Looge ja kasutage Data Wrangleri voogu ja Amazon SageMakeri hinnakujundus. Data Wrangleriga alustamiseks vaadake Valmistage ette ML-andmed rakendusega Amazon SageMaker Data Wrangler. Autopiloodi ja AutoML-i kohta SageMakeris lisateabe saamiseks külastage Automatiseerige mudeliarendus Amazon SageMaker Autopilotiga.


Autoritest

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Meenakshisundaram Thandavarayan on AWS-iga AI/ML vanemspetsialist. Ta aitab kõrgtehnoloogilisi strateegilisi kontosid nende AI ja ML teekonnal. Ta on väga kirglik andmepõhise AI vastu.

 Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Sovik Kumar Nath on AWS-iga AI/ML-lahenduste arhitekt. Tal on laialdased kogemused masinõppe terviklike disainide ja lahenduste alal; Ärianalüütika finants-, tegevus- ja turundusanalüütika raames; tervishoid; tarneahel; ja IoT. Tööväliselt naudib Sovik reisimist ja filmide vaatamist.

Kohandatud teisenduste loomine rakenduses Amazon SageMaker Data Wrangler, kasutades NLTK ja SciPy PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.Abigail on Amazon SageMakeri tarkvaraarenduse insener. Ta soovib kirglikult aidata klientidel DataWrangleris andmeid ette valmistada ja hajutatud masinõppesüsteeme luua. Vabal ajal naudib Abigail reisimist, matkamist, suusatamist ja küpsetamist.

Ajatempel:

Veel alates AWS-i masinõpe