Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Bereiten Sie Daten schneller mit PySpark- und Altair-Code-Snippets in Amazon SageMaker Data Wrangler vor

Amazon SageMaker Data Wrangler ist ein speziell entwickeltes Datenaggregations- und Aufbereitungstool für maschinelles Lernen (ML). Es ermöglicht Ihnen, eine visuelle Schnittstelle zu verwenden, um auf Daten zuzugreifen und explorative Datenanalysen (EDA) und Feature-Engineering durchzuführen. Die EDA-Funktion verfügt über integrierte Datenanalysefunktionen für Diagramme (z. B. Streudiagramm oder Histogramm) und zeitsparende Modellanalysefunktionen wie Merkmalswichtigkeit, Zielleckage und Modellerklärbarkeit. Die Feature-Engineering-Funktion verfügt über mehr als 300 integrierte Transformationen und kann benutzerdefinierte Transformationen mit Python, PySpark oder Spark SQL-Laufzeit ausführen.

Für benutzerdefinierte Visualisierungen und Transformationen bietet Data Wrangler jetzt Beispielcodeausschnitte für gängige Arten von Visualisierungen und Transformationen. In diesem Beitrag zeigen wir, wie Sie diese Code-Snippets verwenden, um Ihr EDA in Data Wrangler schnell zu starten.

Lösungsüberblick

Zum Zeitpunkt der Erstellung dieses Artikels können Sie Datensätze aus Data Wrangler importieren Amazon Simple Storage-Service (Amazon S3), Amazonas Athena, Amazon RedShift, Databricks und Schneeflocke. Für diesen Beitrag verwenden wir Amazon S3, um die Amazon 2014 zu speichern Bewertungsdatensatz. Das Folgende ist ein Beispiel des Datensatzes:

{ "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 diesem Beitrag führen wir EDA mit drei Spalten durch:asin, reviewTime und overall– die jeweils der Produkt-ID, dem Datum der Bewertung und der Bewertungsgesamtpunktzahl zugeordnet sind. Wir verwenden diese Daten, um die Dynamik für die Anzahl der Bewertungen über Monate und Jahre hinweg zu visualisieren.

Verwenden eines Beispiel-Code-Snippets für EDA in Data Wrangler

Führen Sie die folgenden Schritte aus, um mit der Durchführung von EDA in Data Wrangler zu beginnen:

  1. Laden Sie die Digital Music Review-Datensatz JSON und laden Sie es auf Amazon S3 hoch.
    Wir verwenden dies als Rohdatensatz für die EDA.
  2. Offen Amazon SageMaker-Studio und erstellen Sie einen neuen Data Wrangler-Flow und importieren Sie den Datensatz aus Amazon S3.

    Dieser Datensatz hat neun Spalten, aber wir verwenden nur drei: asin, reviewTime und overall. Wir müssen die anderen sechs Spalten löschen.

  3. Erstellen Sie eine benutzerdefinierte Transformation und wählen Sie aus Python (PySpark).
  4. Erweitern Sie die Funktionalität der Beispiel-Snippets suchen und wählen Sie Löschen Sie alle Spalten außer einigen.
  5. Geben Sie das bereitgestellte Snippet in Ihre benutzerdefinierte Transformation ein und befolgen Sie die Anweisungen zum Ändern des Codes.
    # 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)

    Da wir nun alle benötigten Spalten haben, filtern wir die Daten nach unten, um nur Bewertungen zwischen 2000 und 2020 zu behalten.

  6. Verwenden Sie das Filterzeitstempel außerhalb des Bereichs Ausschnitt zum Löschen der Daten vor dem Jahr 2000 und nach 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))

    Als nächstes extrahieren wir das Jahr und den Monat aus der Spalte reviewTime.

  7. Verwenden Sie das Präsentieren Sie Datum/Uhrzeit verwandeln.
  8. Aussichten für Spalten extrahieren, wählen Jahr und Monat.

    Als Nächstes möchten wir die Anzahl der Bewertungen nach Jahr und Monat aggregieren, die wir im vorherigen Schritt erstellt haben.

  9. Verwenden Sie das Berechnen Sie Statistiken in Gruppen Ausschnitt:
    # 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. Benennen Sie die Aggregation des vorherigen Schritts um von count(overall) zu reviews_num durch Auswählen Spalten verwalten und für Spalte umbenennen verwandeln.
    Abschließend möchten wir eine Heatmap erstellen, um die Verteilung der Bewertungen nach Jahr und Monat zu visualisieren.
  11. Wählen Sie auf der Registerkarte Analyse aus Benutzerdefinierte Visualisierung.
  12. Erweitern Sie die Funktionalität der Schnipsel suchen und wählen Sie Heatmap im Dropdown-Menü.
  13. Geben Sie das bereitgestellte Snippet in Ihre benutzerdefinierte Visualisierung ein:
    # 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()
    )

    Wir erhalten die folgende Visualisierung.

    Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Wenn Sie die Heatmap weiter verbessern möchten, können Sie die Daten so aufteilen, dass nur Bewertungen vor 2011 angezeigt werden. Diese sind in der Heatmap, die wir gerade erstellt haben, aufgrund der großen Anzahl von Bewertungen seit 2012 schwer zu identifizieren.

  14. Fügen Sie Ihrer benutzerdefinierten Visualisierung eine Codezeile hinzu:
    # 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()
    )

Wir erhalten die folgende Heatmap.

Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Jetzt spiegelt die Heatmap die Bewertungen vor 2011 deutlicher wider: Wir können die saisonalen Effekte beobachten (das Jahresende bringt mehr Käufe und damit mehr Bewertungen) und können anomale Monate wie Oktober 2003 und März 2005 identifizieren. Es lohnt sich, weiter nachzuforschen um die Ursache dieser Anomalien zu ermitteln.

Zusammenfassung

Data Wrangler ist ein speziell entwickeltes Tool zur Datenaggregation und -vorbereitung für ML. In diesem Beitrag haben wir gezeigt, wie Sie EDA durchführen und Ihre Daten mithilfe von Code-Snippets, die von Data Wrangler bereitgestellt werden, schnell transformieren. Sie müssen nur ein Snippet finden, den Code eingeben und die Parameter an Ihren Datensatz anpassen. Sie können Ihr Skript weiter iterieren, um komplexere Visualisierungen und Transformationen zu erstellen.
Weitere Informationen zu Data Wrangler finden Sie unter Erstellen und verwenden Sie einen Data Wrangler-Flow.


Über die Autoren

Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Nikita Iwkin ist ein angewandter Wissenschaftler, Amazon SageMaker Data Wrangler.

Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Haider Naqvi ist Lösungsarchitekt bei AWS. Er verfügt über umfangreiche Erfahrung in der Softwareentwicklung und Unternehmensarchitektur. Er konzentriert sich darauf, Kunden zu ermöglichen, mit AWS Geschäftsergebnisse zu erzielen. Er hat seinen Sitz in New York.

Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Harish Rajagopalan ist Senior Solutions Architect bei Amazon Web Services. Harish arbeitet mit Unternehmenskunden zusammen und hilft ihnen bei ihrer Cloud-Reise.

Bereiten Sie Daten schneller vor mit PySpark- und Altair-Codefragmenten in Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.James Wu ist Senior AI/ML Specialist SA bei AWS. Er arbeitet mit Kunden zusammen, um ihre Reise in die Cloud zu beschleunigen und ihre Geschäftswertrealisierung zu beschleunigen. Darüber hinaus beschäftigt sich James leidenschaftlich mit der Entwicklung und Skalierung großer KI/ML-Lösungen in verschiedenen Bereichen. Bevor er zu AWS kam, leitete er ein multidisziplinäres Innovationstechnologieteam mit ML-Ingenieuren und Softwareentwicklern für ein weltweit führendes Unternehmen in der Markt- und Werbebranche.

Zeitstempel:

Mehr von AWS Maschinelles Lernen