Zephyrnet-logo

Interactieve gegevensvoorbereidingswidget voor notebooks mogelijk gemaakt door Amazon SageMaker Data Wrangler

Datum:

Volgens een onderzoek uit 2020 onder datawetenschappers, uitgevoerd door Anaconda, is gegevensvoorbereiding een van de kritieke stappen in machine learning (ML) en data-analyseworkflows, en vaak erg tijdrovend voor datawetenschappers. Datawetenschappers besteden ongeveer 66% van hun tijd aan gegevensvoorbereiding en -analyse, waaronder laden (19%), opschonen (26%) en visualiseren van gegevens (21%).

Amazon SageMaker Studio is de eerste volledig geïntegreerde ontwikkelomgeving (IDE) voor ML. Met een enkele klik kunnen datawetenschappers en ontwikkelaars snel aan de slag Studio notitieboekjes om datasets te verkennen en modellen te bouwen. Als u de voorkeur geeft aan een GUI-gebaseerde en interactieve interface, kunt u deze gebruiken Amazon SageMaker-gegevens Wrangler, met meer dan 300 ingebouwde visualisaties, analyses en transformaties om gegevens efficiënt te verwerken, ondersteund door Spark, zonder een enkele regel code te schrijven.

Gegevens Wrangler biedt nu een ingebouwde mogelijkheid voor gegevensvoorbereiding in Amazon SageMaker Studio-notebooks waarmee ML-beoefenaars gegevenskenmerken visueel kunnen beoordelen, problemen kunnen identificeren en problemen met de gegevenskwaliteit kunnen verhelpen - met slechts een paar klikken rechtstreeks in de notebooks.

In dit bericht laten we zien hoe de Gegevens Wrangler data prep widget genereert automatisch belangrijke visualisaties bovenop een Pandas-dataframe om de datadistributie te begrijpen, problemen met de datakwaliteit te detecteren en data-inzichten zoals uitschieters voor elke functie op te sporen. Het helpt bij de interactie met de gegevens en het ontdekken van inzichten die misschien onopgemerkt blijven bij ad-hocquery's. Het beveelt ook transformaties aan om te herstellen, stelt u in staat gegevenstransformaties toe te passen op de gebruikersinterface en automatisch code te genereren in de notebookcellen. Deze functie is beschikbaar in alle regio's waar SageMaker Studio beschikbaar is.

Overzicht oplossingen

Laten we verder begrijpen hoe deze nieuwe widget gegevensverkenning aanzienlijk eenvoudiger maakt en een naadloze ervaring biedt om de algehele ervaring met gegevensvoorbereiding voor gegevensingenieurs en praktijkmensen te verbeteren. Voor onze use case gebruiken we een aangepaste versie van het Titanic-gegevensset, een populaire dataset in de ML-community, die nu is toegevoegd als een voorbeeldgegevensset zodat u snel aan de slag kunt met SageMaker Data Wrangler. De originele dataset is verkregen van OpenML, en aangepast om synthetische gegevenskwaliteitsproblemen toe te voegen door Amazon voor deze demo. U kunt de gewijzigde versie van de dataset downloaden van het openbare S3-pad s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv.

Voorwaarden

Voltooi de volgende vereisten om praktijkervaring op te doen met alle functies die in dit bericht worden beschreven:

  1. Zorg ervoor dat je een AWS-account hebt, beveiligde toegang om in te loggen op het account via de AWS-beheerconsole en AWS Identiteits- en toegangsbeheer (IAM) machtigingen om te gebruiken Amazon Sage Maker en Amazon eenvoudige opslagservice (Amazon S3) bronnen.
  2. Gebruik de voorbeeldgegevensset van het openbare S3-pad s3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv of als alternatief upload het naar een S3-bucket in uw account.
  3. Ga aan boord van een SageMaker-domein en open Studio om notebooks te gebruiken. Raadpleeg voor instructies Aan boord van Amazon SageMaker Domain. Als je bestaande Studio gebruikt, upgrade dan naar de nieuwste versie van Studio.

Schakel de gegevensverkenningswidget in

Wanneer u Pandas-dataframes gebruikt, kunnen Studio-notebookgebruikers de widget voor gegevensverkenning handmatig inschakelen, zodat nieuwe visualisaties standaard bovenaan elke kolom worden weergegeven. De widget toont een histogram voor numerieke gegevens en een staafdiagram voor andere soorten gegevens. Met deze weergaven kunt u snel de gegevensdistributie begrijpen en ontbrekende waarden en uitschieters ontdekken zonder standaardmethoden voor elke kolom te hoeven schrijven. U kunt de muisaanwijzer in elke visual over de balk bewegen om snel inzicht te krijgen in de distributie.

Open Studio en maak een nieuwe Python 3-notebook. Zorg ervoor dat u de kiest Gegevenswetenschap 3.0 afbeelding van SageMaker-afbeeldingen door te klikken Verander omgeving knop.

omgeving veranderen

De gegevensverkenningswidget is beschikbaar in de volgende afbeeldingen. Raadpleeg voor de lijst met standaard SageMaker-afbeeldingen Beschikbare Amazon SageMaker-afbeeldingen.

  • Python 3 (gegevenswetenschap) met Python 3.7
  • Python 3 (Data Science 2.0) met Python 3.8
  • Python 3 (Data Science 3.0) met Python 3.10
  • Spark Analytics 1.0 en 2.0

Om deze widget te gebruiken, importeert u het SageMaker_DataWrangler bibliotheek. Laad de gewijzigde versie van de Titanic-dataset van S3://sagemaker-sample-files/datasets/tabular/dirty-titanic/titanic-dirty-4.csv en lees de CSV met de Pandas-bibliotheek:

import pandas as pd
import boto3
import io
import sagemaker_datawrangler s3 = boto3.client('s3')
obj = s3.get_object(Bucket='sagemaker-sample-files', Key='datasets/tabular/dirty-titanic/titanic-dirty-4.csv')
df = pd.read_csv(io.BytesIO(obj['Body'].read()))

data wrangler data prep widget - voorbeeld notebook

Visualiseer de gegevens

Nadat de gegevens in het Pandas-dataframe zijn geladen, kunt u de gegevens bekijken door gewoon te gebruiken df or display(df). Naast het weergeven van de rij, produceert de gegevensvoorbereidingswidget inzichten, visualisaties en advies over gegevenskwaliteit. U hoeft geen aanvullende code te schrijven om functie- en doelinzichten, distributie-informatie of het weergeven van gegevenskwaliteitscontroles te genereren. U kunt de kop van de dataframetabel kiezen om de statistische samenvatting te bekijken met de waarschuwingen voor de gegevenskwaliteit, indien aanwezig.

visualiseer de gegevens

Elke kolom toont een staafdiagram of histogram op basis van het gegevenstype. Standaard bemonstert de widget maximaal 10,000 waarnemingen voor het genereren van zinvolle inzichten. Het biedt ook de mogelijkheid om de inzichtanalyse uit te voeren op de volledige dataset.

Zoals te zien is in de volgende schermafbeelding, identificeert deze widget of een kolom categorische of kwantitatieve gegevens bevat.

categorische of kwantitatieve gegevens

Voor categorische gegevens genereert de widget het staafdiagram met alle categorieën. In de volgende schermafbeelding is bijvoorbeeld de kolom Sex identificeert de categorieën op de gegevens. U kunt de muisaanwijzer op de balk plaatsen (mannetje in dit geval) om de details van deze categorieën te zien, zoals het totale aantal rijen met de waarde male en de verdeling ervan in de totale gevisualiseerde dataset (64.07% in dit voorbeeld). Het markeert ook het totale percentage ontbrekende waarden in een andere kleur voor categorische gegevens. Voor kwantitatieve gegevens zoals de ticket kolom, toont het de distributie samen met het percentage ongeldige waarden.

Als u een standaard Panda's-visualisatie in het notitieboek wilt zien, kunt u kiezen Bekijk de Panda's tafel en schakel tussen de widget en de Panda's-weergave, zoals weergegeven in de volgende schermafbeelding.

Bekijk de Panda's tafel

bekijk de data wrangler-tabel

Om meer gedetailleerde inzichten te krijgen over de gegevens in de kolom, kiest u de kop van de kolom om een ​​zijpaneel te openen dat aan de kolom is gewijd. Hier ziet u twee tabbladen: Insights en Data kwaliteit.

Inzichten en datakwaliteit

In de volgende paragrafen gaan we dieper in op deze twee opties.

Insights

De Insights tabblad biedt details met beschrijvingen voor elke kolom. Deze sectie bevat geaggregeerde statistieken, zoals modus, aantal unieke items, ratio's en tellingen voor ontbrekende/ongeldige waarden, enz., en visualiseert de gegevensdistributie met behulp van een histogram of een staafdiagram. In de volgende schermafbeeldingen kunt u de gegevensinzichten en distributie-informatie bekijken die worden weergegeven met gemakkelijk te begrijpen visualisaties die voor de geselecteerde kolom zijn gegenereerd survived.

Data kwaliteit

De studiogegevensvoorbereidingswidget markeert geïdentificeerde problemen met de gegevenskwaliteit met het waarschuwingsbord in de koptekst. Widget kan het hele spectrum van problemen met gegevenskwaliteit identificeren, van basics (ontbrekende waarden, constante kolom, etc.) tot meer ML-specifiek (doellekkage, functies met lage voorspellende score, etc.). Widget markeert de cellen die het probleem met de gegevenskwaliteit veroorzaken en reorganiseert de rijen om de problematische cellen bovenaan te plaatsen. Om het probleem met de gegevenskwaliteit op te lossen, biedt de widget verschillende transformatoren die met één klik op de knop kunnen worden toegepast.

Om het gedeelte over gegevenskwaliteit te verkennen, kiest u de kolomkop en kiest u in het zijpaneel de Data kwaliteit tabblad. U zou het volgende moeten zien in uw Studio-omgeving.

tabblad gegevenskwaliteit

Laten we eens kijken naar de verschillende opties die beschikbaar zijn op de Data kwaliteit tabblad. Voor dit voorbeeld kiezen we de leeftijdskolom, die wordt gedetecteerd als een kwantitatieve kolom op basis van de gegevens. Zoals we in de volgende schermafbeelding kunnen zien, stelt deze widget verschillende soorten transformaties voor die u zou kunnen toepassen, inclusief de meest voorkomende acties, zoals Vervangen door nieuwe waarde, druppel ontbreekt, Vervangen door mediaanof Vervang door gemeen. U kunt elk van deze voor uw dataset kiezen op basis van de use case (het ML-probleem dat u probeert op te lossen). Het geeft je ook de Kolom laten vallen optie als u de functie helemaal wilt verwijderen.

leeftijd

Wanneer je kiest Code toepassen en exporteren, wordt de transformatie toegepast op de diepe kopie van het dataframe. Nadat de transformatie met succes is toegepast, wordt de gegevenstabel vernieuwd met de inzichten en visualisaties. De transformatiecode wordt gegenereerd na de bestaande cel in het notitieblok. U kunt deze geëxporteerde code later uitvoeren om de transformatie toe te passen op uw datasets en deze naar behoefte uitbreiden. U kunt de transformatie aanpassen door de gegenereerde code rechtstreeks te wijzigen. Als we de druppel ontbreekt optie in de kolom Leeftijd, wordt de volgende transformatiecode toegepast op de gegevensset en wordt er ook code gegenereerd in een cel onder de widget:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) #Code to Drop missing for column: age to resolve warning: Missing values output_df = output_df[output_df['age'].notnull()]

Het volgende is een ander voorbeeld van een codefragment voor Vervangen door mediaan:

#Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) #Code to Replace with median for column: age to resolve warning: Missing values output_df['age']=output_df['age'].fillna(output_df['age'].median(skipna=True))

Laten we nu eens kijken naar de doelinzichten van de widget voor gegevensvoorbereiding. Stel dat u de survived functie om te voorspellen of een passagier het zal overleven. Kies de survived kolomkop. Kies in het zijpaneel Selecteer als doelkolom. De ideale datadistributie voor de survived feature zou slechts twee klassen moeten hebben: ja (1) of niet (0), wat helpt bij het classificeren van de overlevingskansen van de Titanic-crash. Vanwege gegevensinconsistenties in de gekozen doelkolom is de functie echter bewaard gebleven 0, 1, ?, unknown en yes.

selecteer als doelkolom

Kies het probleemtype op basis van de geselecteerde doelkolom, wat een van beide kan zijn Classificatie or Regressie. Voor de overgebleven kolom is classificatie het probleemtype. Kiezen lopen om inzichten te genereren voor de doelkolom.

overleefd

De gegevensvoorbereidingswidget vermeldt de inzichten van de doelkolom met aanbevelingen en voorbeelduitleg om de problemen met de gegevenskwaliteit van de doelkolom op te lossen. Het markeert ook automatisch de afwijkende gegevens in de kolom.

doelkolominzichten met aanbevelingen

We kiezen de aanbevolen transformatie Laat zeldzame doelwaarden vallen, omdat er minder waarnemingen zijn voor de zeldzame streefwaarden.

Laat zeldzame doelwaarde vallen

De gekozen transformatie wordt toegepast op het Pandas-dataframe en de ongebruikelijke doelwaarden werden verwijderd uit de overgebleven kolom. Zie de volgende code:

# Pandas code generated by sagemaker_datawrangler
output_df = df.copy(deep=True) # Code to Drop rare target values for column: survived to resolve warning: Too few instances per class rare_target_labels_to_drop = ['?', 'unknown', 'yes']
output_df = output_df[~output_df['survived'].isin(rare_target_labels_to_drop)]

De resultaten van de toegepaste transformatie zijn direct zichtbaar op het dataframe. Om de activiteiten voor gegevensvoorbereiding bij te houden die zijn toegepast met behulp van de gegevensvoorbereidingswidget, wordt de getransformeerde code ook gegenereerd in de volgende notitieblokcel.

Conclusie

In dit bericht hebben we richtlijnen gegeven over hoe de Studio-widget voor gegevensvoorbereiding u kan helpen bij het analyseren van gegevensdistributies, het verkennen van door de tool gegenereerde inzichten in gegevenskwaliteit en het ontdekken van potentiële problemen zoals uitschieters voor elke kritieke functie. Dit helpt de algehele gegevenskwaliteit te verbeteren om u te helpen modellen van hoge kwaliteit te trainen, en het verwijdert het ongedifferentieerde zware werk door u in staat te stellen gegevens op de gebruikersinterface te transformeren en automatisch code voor de notebookcellen te genereren. U kunt deze code vervolgens gebruiken in uw MLOps-pijplijnen om reproduceerbaarheid op te bouwen, te voorkomen dat u tijd verspilt aan repetitieve taken en compatibiliteitsproblemen te verminderen door de constructie en implementatie van data-wrangling-pijplijnen te versnellen.

Als u nieuw bent bij SageMaker Data Wrangler of Studio, raadpleeg dan Ga aan de slag met SageMaker Data Wrangler. Als je vragen hebt over dit bericht, voeg deze dan toe in het opmerkingengedeelte.


Over de auteurs

Deel Patel is een Solutions Architect bij AWS in de San Francisco Bay Area. Par begeleidt klanten om hun reis naar de cloud te versnellen en hen te helpen de AWS Cloud succesvol te adopteren en te laten groeien. Hij richt zich op machine learning, ecologische duurzaamheid en modernisering van applicaties.

Ischa Dua is een Senior Solutions Architect gevestigd in de San Francisco Bay Area. Ze helpt AWS Enterprise-klanten groeien door hun doelen en uitdagingen te begrijpen en hen te begeleiden bij het ontwerpen van hun applicaties op een cloud-native manier, terwijl ze ervoor zorgt dat ze veerkrachtig en schaalbaar zijn. Ze is gepassioneerd door machine learning-technologieën en ecologische duurzaamheid.

Hariharan Suresh is Senior Solutions Architect bij AWS. Hij is gepassioneerd door databases, machine learning en het ontwerpen van innovatieve oplossingen. Voordat hij bij AWS kwam, was Hariharan productarchitect, core banking-implementatiespecialist en ontwikkelaar, en werkte hij meer dan 11 jaar met BFSI-organisaties. Buiten de technologie houdt hij van paragliden en fietsen.

Dani Mitchel is een AI/ML Specialist Solutions Architect bij Amazon Web Services. Hij richt zich op gebruiksscenario's voor Computer Vision en helpt klanten in heel EMEA om hun ML-reis te versnellen.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?