Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler

Amazon SageMaker Data Wrangler är ett specialbyggt dataaggregations- och förberedelseverktyg för maskininlärning (ML). Det låter dig använda ett visuellt gränssnitt för att komma åt data och utföra utforskande dataanalys (EDA) och funktionsteknik. EDA-funktionen kommer med inbyggda dataanalysfunktioner för diagram (som scatterplot eller histogram) och tidsbesparande modellanalysfunktioner som funktionsviktighet, målläckage och modellförklarbarhet. Funktionstekniken har över 300 inbyggda transformationer och kan utföra anpassade transformationer med antingen Python, PySpark eller Spark SQL runtime.

För anpassade visualiseringar och transformationer tillhandahåller Data Wrangler nu exempel på kodavsnitt för vanliga typer av visualiseringar och transformationer. I det här inlägget visar vi hur du använder dessa kodsnuttar för att snabbstarta din EDA i Data Wrangler.

Lösningsöversikt

När detta skrivs kan du importera datamängder till Data Wrangler från Amazon enkel lagringstjänst (Amazon S3), Amazonas Athena, Amazon RedShift, Databricks och Snowflake. För det här inlägget använder vi Amazon S3 för att lagra 2014 års Amazon granskar dataset. Följande är ett exempel på datamängden:

{ "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" } 

I det här inlägget utför vi EDA med tre kolumner—asin, reviewTimeoch overall—som mappar till produkt-ID, granskningstidsdatum och det övergripande recensionsresultatet. Vi använder denna data för att visualisera dynamiken för antalet recensioner över månader och år.

Använder exempelkodavsnitt för EDA i Data Wrangler

För att börja utföra EDA i Data Wrangler, slutför följande steg:

  1. ladda ner Digital Music recensioner dataset JSON och ladda upp den till Amazon S3.
    Vi använder detta som rådatauppsättning för EDA.
  2. Öppen Amazon SageMaker Studio och skapa ett nytt Data Wrangler-flöde och importera datamängden från Amazon S3.

    Denna datauppsättning har nio kolumner, men vi använder bara tre: asin, reviewTimeoch overall. Vi måste ta bort de andra sex kolumnerna.

  3. Skapa en anpassad transformation och välj Python (PySpark).
  4. Bygga ut Sök exempel på utdrag Och välj Släpp alla kolumner utom flera.
  5. Ange det medföljande utdraget i din anpassade transformation och följ anvisningarna för att ändra koden.
    # 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 när vi har alla kolumner vi behöver, låt oss filtrera ner data för att bara behålla recensioner mellan 2000–2020.

  6. Använd Filtertidsstämpel utanför räckvidd utdrag för att ta bort data före år 2000 och efter 2020:
    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))

    Därefter extraherar vi år och månad från kolumnen reviewTime.

  7. Använd Ange datum/tid omvandla.
  8. För Extrahera kolumnerväljer år och månad.

    Därefter vill vi sammanställa antalet recensioner per år och månad som vi skapade i föregående steg.

  9. Använd Beräkna statistik i grupper utdrag:
    # 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. Byt namn på aggregeringen av föregående steg från count(overall) till reviews_num genom att välja Hantera kolumner och Byt namn på kolumn omvandla.
    Slutligen vill vi skapa en värmekarta för att visualisera fördelningen av recensioner per år och månad.
  11. Välj på analysfliken Anpassad visualisering.
  12. Bygga ut Sök efter utdrag Och välj Värmekarta på rullgardinsmenyn.
  13. Ange det medföljande utdraget i din anpassade visualisering:
    # 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()
    )

    Vi får följande visualisering.

    Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Om du vill förbättra värmekartan ytterligare kan du dela upp data så att de bara visar recensioner före 2011. Dessa är svåra att identifiera i värmekartan vi just skapat på grund av stora mängder recensioner sedan 2012.

  14. Lägg till en rad kod till din anpassade visualisering:
    # 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()
    )

Vi får följande värmekarta.

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Nu återspeglar värmekartan recensionerna före 2011 mer synligt: ​​vi kan observera säsongseffekterna (slutet av året ger fler köp och därför fler recensioner) och kan identifiera onormala månader, som oktober 2003 och mars 2005. Det är värt att undersöka ytterligare för att fastställa orsaken till dessa anomalier.

Slutsats

Data Wrangler är ett specialbyggt dataaggregations- och förberedelseverktyg för ML. I det här inlägget demonstrerade vi hur du utför EDA och transformerar din data snabbt med hjälp av kodavsnitt från Data Wrangler. Du behöver bara hitta ett utdrag, ange koden och justera parametrarna så att de matchar din datauppsättning. Du kan fortsätta att iterera på ditt skript för att skapa mer komplexa visualiseringar och transformationer.
För att lära dig mer om Data Wrangler, se Skapa och använd ett Data Wrangler-flöde.


Om författarna

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Nikita Ivkin är en tillämpad forskare, Amazon SageMaker Data Wrangler.

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Haider Naqvi är lösningsarkitekt på AWS. Han har omfattande erfarenhet av mjukvaruutveckling och företagsarkitektur. Han fokuserar på att göra det möjligt för kunder att uppnå affärsresultat med AWS. Han är baserad i New York.

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Harish Rajagopalan är Senior Solutions Architect på Amazon Web Services. Harish arbetar med företagskunder och hjälper dem med deras molnresa.

Förbered data snabbare med PySpark och Altair-kodavsnitt i Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.James Wu är Senior AI/ML Specialist SA på AWS. Han arbetar med kunder för att påskynda deras molnresa och snabba upp deras affärsvärde. Utöver det brinner James också för att utveckla och skala stora AI/ML-lösningar över olika domäner. Innan han började på AWS ledde han ett multidisciplinärt innovationsteknikteam med ML-ingenjörer och mjukvaruutvecklare för ett globalt toppföretag inom marknaden och reklambranschen.

Tidsstämpel:

Mer från AWS maskininlärning