Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Szybsze przygotowywanie danych dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler

Pogromca danych Amazon SageMaker to specjalnie zaprojektowane narzędzie do agregacji i przygotowywania danych do uczenia maszynowego (ML). Umożliwia korzystanie z interfejsu wizualnego w celu uzyskania dostępu do danych i wykonywania eksploracyjnej analizy danych (EDA) oraz inżynierii funkcji. Funkcja EDA zawiera wbudowane funkcje analizy danych dla wykresów (takich jak wykres punktowy lub histogram) oraz funkcje analizy modelu, które pozwalają zaoszczędzić czas, takie jak ważność funkcji, wyciek celu i wyjaśnialność modelu. Funkcja inżynierii funkcji ma ponad 300 wbudowanych przekształceń i umożliwia wykonywanie niestandardowych przekształceń przy użyciu środowiska uruchomieniowego Python, PySpark lub Spark SQL.

W przypadku niestandardowych wizualizacji i przekształceń Data Wrangler udostępnia teraz przykładowe fragmenty kodu dla typowych typów wizualizacji i przekształceń. W tym poście pokazujemy, jak używać tych fragmentów kodu do szybkiego uruchomienia EDA w Data Wrangler.

Omówienie rozwiązania

W chwili pisania tego tekstu możesz importować zestawy danych do Data Wranglera z Usługa Amazon Simple Storage (Amazonka S3), Amazonka Atena, Amazonka Przesunięcie ku czerwieni, Databricks i Snowflake. W tym poście używamy Amazon S3 do przechowywania Amazon 2014 recenzja zbioru danych. Oto próbka zbioru danych:

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

W tym poście wykonujemy EDA przy użyciu trzech kolumn:asin, reviewTime, overall— które mapują odpowiednio identyfikator produktu, datę recenzji i ogólny wynik recenzji. Używamy tych danych do wizualizacji dynamiki liczby recenzji na przestrzeni miesięcy i lat.

Korzystanie z przykładowego fragmentu kodu dla EDA w Data Wrangler

Aby rozpocząć wykonywanie EDA w aplikacji Data Wrangler, wykonaj następujące czynności:

  1. Pobierz Zbiór danych recenzji muzyki cyfrowej JSON i prześlij go do Amazon S3.
    Używamy tego jako surowego zbioru danych dla EDA.
  2. Otwarte Studio Amazon SageMaker i utwórz nowy przepływ Data Wrangler i zaimportuj zestaw danych z Amazon S3.

    Ten zbiór danych ma dziewięć kolumn, ale używamy tylko trzech: asin, reviewTime, overall. Musimy odrzucić pozostałe sześć kolumn.

  3. Utwórz niestandardową transformację i wybierz Python (PySpark).
  4. Rozszerzać Wyszukaj przykładowe fragmenty i wybierz Usuń wszystkie kolumny z wyjątkiem kilku.
  5. Wprowadź dostarczony fragment kodu do niestandardowego przekształcenia i postępuj zgodnie z instrukcjami, aby zmodyfikować kod.
    # 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)

    Teraz, gdy mamy już wszystkie potrzebne kolumny, przefiltrujmy dane, aby zachować tylko recenzje z okresu 2000–2020.

  6. Użyj Filtruj znacznik czasu poza zakresem fragment do usunięcia danych sprzed 2000 r. i po 2020 r.:
    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))

    Następnie wyodrębniamy rok i miesiąc z kolumny reviewTime.

  7. Użyj Wyróżnij datę/godzinę przekształcać.
  8. W razie zamówieenia projektu Wyodrębnij kolumnywybierz rok i miesiąc.

    Następnie chcemy zagregować liczbę recenzji według roku i miesiąca, które utworzyliśmy w poprzednim kroku.

  9. Użyj Oblicz statystyki w grupach skrawek:
    # 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. Zmień nazwę agregacji poprzedniego kroku z count(overall) do reviews_num wybierając Zarządzaj kolumnami oraz Zmień nazwę kolumny przekształcać.
    Na koniec chcemy stworzyć mapę popularności, aby zwizualizować rozkład recenzji według roku i miesiąca.
  11. Na karcie analizy wybierz Wizualizacja niestandardowa.
  12. Rozszerzać Wyszukaj fragment i wybierz Mapa ciepła w menu rozwijanym.
  13. Wprowadź dostarczony fragment do niestandardowej wizualizacji:
    # 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()
    )

    Otrzymujemy następującą wizualizację.

    Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.
    Jeśli chcesz jeszcze bardziej ulepszyć mapę popularności, możesz podzielić dane tak, aby wyświetlały się tylko recenzje sprzed 2011 roku. Trudno je zidentyfikować na mapie, którą właśnie stworzyliśmy, ze względu na dużą liczbę recenzji od 2012 roku.

  14. Dodaj jeden wiersz kodu do niestandardowej wizualizacji:
    # 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()
    )

Otrzymujemy następującą mapę cieplną.

Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Teraz mapa cieplna w bardziej widoczny sposób odzwierciedla recenzje sprzed 2011 r.: możemy zaobserwować efekty sezonowe (koniec roku przynosi więcej zakupów, a co za tym idzie więcej recenzji) i możemy zidentyfikować anomalne miesiące, takie jak październik 2003 i marzec 2005. Warto to zbadać dalej aby ustalić przyczynę tych anomalii.

Wnioski

Data Wrangler to specjalnie zaprojektowane narzędzie do agregacji i przygotowywania danych dla ML. W tym poście pokazaliśmy, jak wykonać EDA i szybko przekształcić dane za pomocą fragmentów kodu dostarczonych przez Data Wrangler. Musisz tylko znaleźć fragment, wpisać kod i dostosować parametry do swojego zbioru danych. Możesz kontynuować iterację skryptu, aby tworzyć bardziej złożone wizualizacje i przekształcenia.
Aby dowiedzieć się więcej o Data Wranglerze, przejdź do Twórz i używaj przepływu danych Wrangler.


O autorach

Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Nikita Iwkin jest naukowcem stosowanym, Amazon SageMaker Data Wrangler.

Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Haidera Naqviego jest Architektem Rozwiązań w AWS. Posiada bogate doświadczenie w tworzeniu oprogramowania i architekturze korporacyjnej. Koncentruje się na umożliwieniu klientom osiągania wyników biznesowych z AWS. Mieszka w Nowym Jorku.

Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Harish Rajagopalan jest starszym architektem rozwiązań w Amazon Web Services. Harish współpracuje z klientami korporacyjnymi i pomaga im w podróży do chmury.

Szybciej przygotuj dane dzięki fragmentom kodu PySpark i Altair w Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jamesa Wu jest starszym specjalistą AI/ML SA w AWS. Współpracuje z klientami, aby przyspieszyć ich podróż do chmury i przyspieszyć realizację ich wartości biznesowej. Oprócz tego James jest również pasjonatem opracowywania i skalowania dużych rozwiązań AI/ML w różnych domenach. Przed dołączeniem do AWS kierował wielobranżowym zespołem ds. technologii innowacji z inżynierami ML i programistami dla czołowej globalnej firmy w branży rynkowej i reklamowej.

Znak czasu:

Więcej z Uczenie maszynowe AWS