Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler

Amazon SageMaker-gegevens Wrangler is een speciaal gebouwde tool voor het verzamelen en voorbereiden van gegevens voor machine learning (ML). Hiermee kunt u een visuele interface gebruiken om toegang te krijgen tot gegevens en verkennende gegevensanalyse (EDA) en feature-engineering uit te voeren. De EDA-functie wordt geleverd met ingebouwde gegevensanalysemogelijkheden voor grafieken (zoals spreidingsplot of histogram) en tijdbesparende modelanalysemogelijkheden zoals functiebelang, doellekkage en modelverklaarbaarheid. De functie-engineering heeft meer dan 300 ingebouwde transformaties en kan aangepaste transformaties uitvoeren met behulp van Python, PySpark of Spark SQL-runtime.

Voor aangepaste visualisaties en transformaties biedt Data Wrangler nu voorbeeldcodefragmenten voor veelvoorkomende typen visualisaties en transformaties. In dit bericht laten we zien hoe u deze codefragmenten kunt gebruiken om uw EDA snel te starten in Data Wrangler.

Overzicht oplossingen

Op het moment van schrijven kunt u datasets in Data Wrangler importeren vanuit: Amazon eenvoudige opslagservice (Amazone S3), Amazone Athene, Amazon roodverschuiving, Databricks en Sneeuwvlok. Voor dit bericht gebruiken we Amazon S3 om de Amazon 2014 op te slaan beoordelingen dataset. Het volgende is een voorbeeld van de dataset:

{ "reviewerID": "A2SUAM1J3GNN3B", "asin": "0000013714", "reviewerName": "J. McDonald", "helpful": [2, 3], "reviewText": "I bought this for my husband who plays the piano. He is having a wonderful time playing these old hymns. The music is sometimes hard to read because we think the book was published for singing from more than playing from. Great purchase though!", "overall": 5.0, "summary": "Heavenly Highway Hymns", "unixReviewTime": 1252800000, "reviewTime": "09 13, 2009" } 

In dit bericht voeren we EDA uit met behulp van drie kolommen:asin, reviewTime en overall-die respectievelijk verwijzen naar de product-ID, de datum van de beoordeling en de algehele beoordelingsscore. We gebruiken deze gegevens om de dynamiek van het aantal beoordelingen over maanden en jaren te visualiseren.

Voorbeeld Code Snippet voor EDA gebruiken in Data Wrangler

Voer de volgende stappen uit om EDA in Data Wrangler uit te voeren:

  1. Download de Dataset voor digitale muziekrecensies JSON en upload het naar Amazon S3.
    We gebruiken dit als de ruwe dataset voor de EDA.
  2. Openen Amazon SageMaker Studio en maak een nieuwe Data Wrangler-stroom en importeer de dataset van Amazon S3.

    Deze dataset heeft negen kolommen, maar we gebruiken er maar drie: asin, reviewTime en overall. We moeten de andere zes kolommen laten vallen.

  3. Maak een aangepaste transformatie en kies Python (PySpark).
  4. Uitvouwen Zoek voorbeeldfragmenten En kies Laat alle kolommen vallen, behalve meerdere.
  5. Voer het meegeleverde fragment in uw aangepaste transformatie in en volg de aanwijzingen om de code aan te passen.
    # Specify the subset of columns to keep
    cols = ["asin", "reviewTime", "overall"] cols_to_drop = set(df.columns).difference(cols) df = df.drop(*cols_to_drop)

    Nu we alle kolommen hebben die we nodig hebben, gaan we de gegevens filteren om alleen beoordelingen tussen 2000-2020 te behouden.

  6. Gebruik de Filter tijdstempel buiten bereik fragment om de gegevens vรณรณr het jaar 2000 en na 2020 te verwijderen:
    from pyspark.sql.functions import col
    from datetime import datetime # specify the start and the stop timestamp
    timestamp_start = datetime.strptime("2000-01-01 12:00:00", "%Y-%m-%d %H:%M:%S")
    timestamp_stop = datetime.strptime("2020-01-01 12:00:00", "%Y-%m-%d %H:%M:%S") df = df.filter(col("reviewTime").between(timestamp_start, timestamp_stop))

    Vervolgens extraheren we het jaar en de maand uit de kolom reviewTime.

  7. Gebruik de Datum/tijd uitlichten transformeren.
  8. Voor Kolommen extraheren, kiezen jaar en maand.

    Vervolgens willen we het aantal beoordelingen dat we in de vorige stap hebben gemaakt, per jaar en per maand samenvoegen.

  9. Gebruik de Statistieken berekenen in groepen fragment:
    # Table is available as variable `df`
    from pyspark.sql.functions import sum, avg, max, min, mean, count # Provide the list of columns defining groups
    groupby_cols = ["reviewTime_year", "reviewTime_month"] # Specify the map of aggregate function to the list of colums
    # aggregates to use: sum, avg, max, min, mean, count
    aggregate_map = {count: ["overall"]} all_aggregates = []
    for a, cols in aggregate_map.items(): all_aggregates += [a(col) for col in cols] df = df.groupBy(groupby_cols).agg(*all_aggregates)

  10. Hernoem de aggregatie van de vorige stap van count(overall) naar reviews_num door te kiezen Kolommen beheren en Kolom hernoemen transformeren.
    Ten slotte willen we een heatmap maken om de verdeling van beoordelingen per jaar en per maand te visualiseren.
  11. Kies op het analysetabblad Aangepaste visualisatie.
  12. Uitvouwen Zoeken naar fragment En kies Heatmap in het vervolgkeuzemenu.
  13. Voer het meegeleverde fragment in uw aangepaste visualisatie in:
    # Table is available as variable `df`
    # Table is available as variable `df`
    import altair as alt # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

    We krijgen de volgende visualisatie.

    Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
    Als u de heatmap verder wilt verbeteren, kunt u de gegevens opsplitsen om alleen beoordelingen van vรณรณr 2011 weer te geven. Deze zijn moeilijk te identificeren in de heatmap die we zojuist hebben gemaakt vanwege het grote aantal beoordelingen sinds 2012.

  14. Voeg รฉรฉn regel code toe aan uw aangepaste visualisatie:
    # Table is available as variable `df`
    import altair as alt df = df[df.reviewTime_year < 2011]
    # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

We krijgen de volgende heatmap.

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Nu geeft de heatmap de beoordelingen van vรณรณr 2011 meer zichtbaar weer: we kunnen de seizoenseffecten waarnemen (het einde van het jaar brengt meer aankopen en dus meer beoordelingen) en kunnen afwijkende maanden identificeren, zoals oktober 2003 en maart 2005. Het is de moeite waard om verder te onderzoeken om de oorzaak van deze afwijkingen vast te stellen.

Conclusie

Data Wrangler is een speciaal gebouwde tool voor het verzamelen en voorbereiden van gegevens voor ML. In dit bericht hebben we laten zien hoe u EDA kunt uitvoeren en uw gegevens snel kunt transformeren met behulp van codefragmenten van Data Wrangler. U hoeft alleen maar een fragment te vinden, de code in te voeren en de parameters aan te passen aan uw dataset. U kunt doorgaan met het herhalen van uw script om complexere visualisaties en transformaties te maken.
Raadpleeg voor meer informatie over Data Wrangler: Een Data Wrangler-stroom maken en gebruiken.


Over de auteurs

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Nikita Ivkin is een toegepast wetenschapper, Amazon SageMaker Data Wrangler.

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Haider Naqvi is Solutions Architect bij AWS. Hij heeft uitgebreide ervaring op het gebied van softwareontwikkeling en enterprise-architectuur. Hij richt zich op het in staat stellen van klanten om zakelijke resultaten te behalen met AWS. Hij is gevestigd in New York.

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Harish Rajagopalan is Senior Solutions Architect bij Amazon Web Services. Harish werkt met zakelijke klanten en helpt hen met hun cloudreis.

Bereid gegevens sneller voor met PySpark- en Altair-codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.James Wu is Senior AI/ML Specialist SA bij AWS. Hij werkt samen met klanten om hun reis naar de cloud te versnellen en de realisatie van hun bedrijfswaarde te versnellen. Daarnaast is James ook gepassioneerd door het ontwikkelen en opschalen van grote AI/ML-oplossingen in verschillende domeinen. Voordat hij bij AWS kwam, leidde hij een multidisciplinair innovatietechnologieteam met ML-ingenieurs en softwareontwikkelaars voor een wereldwijd topbedrijf in de markt- en reclame-industrie.

Tijdstempel:

Meer van AWS-machine learning