Getty Images
Machine-Learning-Daten mit SageMaker Data Wrangler vorbereiten
In diesem Tutorial lernen Sie, wie Sie Daten laden, analysieren und transformieren, um ein Machine-Learning-Modell mit Amazon SageMaker Data Wrangler zu trainieren.
Bei der Arbeit mit Big Data ist eine der zeitaufwendigsten Aufgaben die Verarbeitung von Datensätzen. Wenn Sie nicht mit einem Tool wie PySpark oder Pandas vertraut sind, kann es unglaublich schwierig sein, effizient zu arbeiten.
Aber was wäre, wenn es ein Tool gibt, mit dem Sie Daten schnell und einfach verarbeiten können? Was wäre, wenn dieses Tool die Schwerstarbeit der Datenverarbeitung und -analyse und der Erstellung eines wiederholbaren Dokuments übernimmt, um diese Schritte zu wiederholen, und das alles mit wenig oder gar keinem Code?
Amazon SageMaker Data Wrangler ist eines der AWS-Angebote für maschinelles Lernen (ML), das Sie bei der Umwandlung, Analyse und Aufbereitung Ihrer Daten für die Schulung unterstützen kann.
Am Ende dieses Schritt-für-Schritt-Tutorials sollten Sie wissen, wie Sie einen Datensatz analysieren und mithilfe der in Data Wrangler integrierten Tools transformieren, um ihn für maschinelles Lernen vorzubereiten.
Data-Wrangler-Voraussetzungen
Um loszulegen, benötigen Sie ein paar Dinge:
- Ein AWS-Konto oder einen Benutzer/Rolle in einem Konto mit Zugriff aus SageMaker
- Eine Amazon SageMaker Domain und einen Benutzer in dieser Domain. Die Demo für diesen Artikel kann mit einer Quick Setup Domain oder einer Standard Setup Domain durchgeführt werden.
AWS stellt Beispieldaten für jeden zur Verfügung, der den Umgang mit Data Wrangler erlernen möchte. Wenn Sie jedoch Ihren eigenen Datensatz verwenden möchten, müssen Sie diese Daten auch zu einer der unterstützten Datenquellen wie S3 oder Redshift hinzufügen. Dann gewähren Sie der Aufrufrolle Ihres SageMaker-Benutzers Zugriff auf diese Datenquelle. Für die Demos in diesem Artikel benötigen Sie nur die Beispieldaten.
Schritt 1: Daten importieren
Um mit Data Wrangler zu beginnen, gehen Sie zu Ihrer SageMaker-Domäne und klicken Sie auf diese. Das sollte Sie zur Seite Domänendetails (Domain Details) führen, auf der die Registerkarte Benutzerprofile (User profiles) geöffnet ist. Wenn Sie eine Schnellstart-SageMaker-Domäne gewählt haben, haben Sie einen Benutzer mit dem Namen Standard (default), gefolgt von einer langen, zufälligen Nummer.
Auf der rechten Seite des Bildschirms befindet sich ein Dropdown-Menü mit der Bezeichnung Starten (Launch). Verwenden Sie dieses Menü, um Studio auszuwählen, wodurch AWS SageMaker Studio gestartet wird. Data Wrangler ist eines der Tools, die in SageMaker Studio integriert sind.
Da Sie in diesem Lehrgang nur Daten verarbeiten werden, wählen Sie Importieren und Daten visuell aufbereiten (Import & Prepare Data Visually) aus dem Bereich Quick Actions in SageMaker Studio. Daraufhin öffnet sich eine neue Registerkarte mit der Erweiterung .flow und einem Menü. Hier stehen mehrere verschiedene Datenquellen zur Verfügung, einige andere AWS-Dienste und einige Dienste von Drittanbietern. Klicken Sie zunächst auf die Schaltfläche auf der rechten Seite mit der Bezeichnung Beispieldaten verwenden (Use sample data).
Schritt 2: Erkunden Sie die Daten
Wenn Sie die Funktionen von Data Wrangler verstehen, können Sie den Datensatz besser bereinigen und transformieren, bevor Sie Ihr maschinelles Lernmodell damit trainieren.
Dieser Datensatz ist eine Passagierliste der Titanic-Reise von 1912. Er enthält Informationen über die Kabine, das Alter und die Klasse der Passagiere und darüber, ob sie überlebt haben oder nicht. Sie können die Quelle der Daten sehen, nämlich Amazon S3, und einen Transformationsblock, der mit den Daten verbunden ist und jeder Spalte einen Datentyp zuweist.
Klicken Sie auf das Symbol + neben der ersten Transformation. Es erscheint ein Menü mit mehreren Operationen, die Sie mit den Daten durchführen können. Klicken sie auf Dateneinblicke (Get data insights), um ein Menü mit einer Vorschau der Daten auf der linken Seite anzuzeigen. Es gibt auch ein Panel mit einigen Optionen für die Art der Analyse, die Sie durchführen möchten. Wählen Sie Datenqualität und Insights-Bericht (Data Quality and Insights Report).
Klicken Sie anschließend auf die Optionsschaltfläche Klassifizierung (Classification) unter dem Feld Problemtyp (Problem Type) unten auf der rechten Seite des Bereichs. Klicken Sie dann auf Erstellen (Create). Das generiert eine Zusammenfassung jedes Merkmals im Datensatz, ein Diagramm, das dieses Merkmal auf einer hohen Ebene zeigt, und Metadaten dazu, wie Typ, Gültigkeit, fehlende oder eindeutige Einträge und Bereiche.
Diese Art von Metadaten ist hilfreich, wenn Sie herausfinden wollen, was Sie als nächstes tun müssen. Wenn Sie zum Beispiel ein Modell erstellen möchten, um die Wahrscheinlichkeit vorherzusagen, dass ein nicht aufgeführter Passagier den Untergang überlebt, sind die Merkmale Alter und Passagierklasse hilfreich. Informationen wie die Fahrscheinnummer sind dagegen weniger nützlich.
Schritt 3: Transformieren der Daten
Da Sie diese Daten vielleicht später für andere Projekte oder Analysen verwenden möchten, wird Data Wrangler diese Spalte nicht aus dem Originaldokument entfernen. Stattdessen definieren Sie die Schritte, die Sie mit dem Datensatz durchführen wollen, und Data Wrangler zeigt sie in der Vorschau an, bevor er eine Kopie der Daten erstellt und sie an einem separaten Ort in S3 speichert.
Nun, da Sie eine Vorstellung von den Merkmalen dieses Datensatzes haben, können Sie die Daten vorbereiten. Da Sie das Merkmal Ticketnummer bereits als nicht relevant für Ihre Analyse identifiziert haben, können Sie es weglassen. Klicken Sie auf der Datenfluss-Seite (Data Flow), auf der Sie im letzten Abschnitt den Insights-Bericht erstellt haben, erneut auf das +-Symbol und dann auf Transformation hinzufügen (Add transform). Dadurch gelangen Sie auf eine Seite mit einer Vorschau der Daten.
Auf der rechten Seite finden Sie eine Liste der Schritte, die Data Wrangler durchführt, bevor Sie Ihr Modell trainieren. Sie können die ersten beiden Schritte bereits sehen: S3-Quelle (S3 Source) und Datentypen (Data Types). Klicken Sie auf Schritt hinzufügen (Add Step) und suchen Sie dann nach Spalten verwalten (Manage columns).
Mit dieser Transformation können Sie zahlreiche Aktionen an einer oder mehreren Spalten in Ihren Daten durchführen, einschließlich Duplizieren, Umbenennen und Löschen. Wählen Sie dann Spalte löschen (Drop Column) und wählen Sie die Spalte Ticket aus. Fügen Sie sie dann zur Liste der Schritte hinzu. In der nächsten generierten Vorschau ist die Ticketspalte verschwunden.
Benutzerdefinierte Transformationen erstellen
Was, wenn Sie einige benutzerdefinierte Transformationen durchführen müssen? Sie können PySpark oder Pandas auf Daten als Teil der Data Wrangler Pipeline anwenden.
Nach der Spalte löschen-Transformation (Drop Column) wählen Sie benutzerdefinierte Transformation (Custom Transform) und dann PySpark. Geben Sie das folgende Python-Snippet als Transformationscode ein. Dieser nimmt die Spalte Survived und wandelt sie in einen boleeschen Wert um:
from pyspark.sql import types
df = df.withColumn("survived", df["survived"].cast(types.BooleanType()))
Beachten Sie, dass die Werte in der Spalte Survived jetzt true und false statt 1 und 0 sind. Sie können Pandas, PySpark, NumPy, scikit-learn oder SciPy in Ihren Funktionen verwenden.
Schritt 4: Trainieren des ML-Modells
Nun, da die Transformationen abgeschlossen sind und alles vorbereitet ist, können Sie Ihr maschinelles Lernmodell trainieren. Wenn Sie mitgemacht haben, sollte Ihr Data-Wrangler-Datenfluss in etwa wie in Abbildung 7 aussehen.
Klicken Sie auf das +-Symbol am Ende des PySpark-Schritts und wählen Sie Modell trainieren (Train Model). Eine Eingabeaufforderung fragt Sie, wo Sie das Modell in S3 speichern möchten. Sobald Sie einen Speicherort ausgewählt haben, wird Ihnen ein Autopilot-Experiment angezeigt. Sie können beliebige Merkmale aus den Daten auswählen, auf die Sie abzielen möchten, und SageMaker kümmert sich um den Rest.
Das dauert mehrere Stunden, da SageMaker mehrere Versuche durchführt, um das optimale Modell zu finden. Wenn Sie fertig sind, haben Sie ein einsatzfähiges Modell, das Sie für Ihre Anwendungen verwenden können, sowie einen Endpunkt für den Zugriff darauf.