Automatisches Erstellen von Machine-Learning-Modellen

LEITFADEN ERSTE SCHRITTE

Übersicht

In diesem Tutorial erfahren Sie, wie Sie Amazon SageMaker Autopilot verwenden, um automatisch ein Machine Learning (ML)-Modell zu erstellen, zu trainieren, zu optimieren und das Modell bereitzustellen, um Vorhersagen zu treffen.
 

Amazon SageMaker Autopilot erleichtert Ihnen die Erstellung von ML-Modellen, indem es Ihnen hilft, automatisch das beste ML-Modell basierend auf Ihren Daten zu erstellen, zu trainieren und zu optimieren. Mit SageMaker Autopilot stellen Sie einen tabellarischen Datensatz zur Verfügung und wählen die Zielspalte für die Vorhersage aus. SageMaker Autopilot untersucht Ihre Daten, wählt die für Ihr Problem relevanten Algorithmen aus, bereitet die Daten für das Modelltraining vor, testet eine Vielzahl von Modellen und wählt das leistungsstärkste aus. Sie können dann eines der Kandidatenmodelle bereitstellen oder weiter iterieren, um die Vorhersagequalität zu verbessern.

Lerninhalte

In diesem Leitfaden werden Sie:

  • Ein Trainingsexperiment unter Verwendung von SageMaker Autopilot erstellen
  • Erkunden der verschiedenen Phasen des Trainingsexperiments
  • Identifizieren und Bereitstellen des Modells mit der besten Leistung aus dem Trainingsexperiment
  • Erstellen von Prognosen mit Ihrem bereitgestellten Modell

Voraussetzungen

Bevor Sie mit diesem Leitfaden beginnen, benötigen Sie:

 AWS-Erfahrung

Einsteiger

 Benötigte Zeit

45 Minuten

 Veranschlagte Kosten

Siehe SageMaker-Preise, um die Kosten für dieses Tutorial abzuschätzen.

 Erfordert

Sie müssen bei einem AWS-Konto angemeldet sein.

 Verwendete Services

Amazon SageMaker Autopilot

 Letzte Aktualisierung

12. Juli 2022

Anwendungsfall

Für diesen Workflow werden Sie einen synthetisch generierten Datensatz für Kfz-Versicherungsansprüche verwenden. Die Roheingaben sind zwei Tabellen mit Versicherungsdaten: eine Anspruchstabelle und eine Kundentabelle. Die Anspruchstabelle enthält eine Betrugsspalte, die angibt, ob ein Anspruch betrügerisch oder anderweitig war. Für die Zwecke dieses Tutorials haben wir einen kleinen Teil des Datensatzes ausgewählt. Sie können jedoch dieselben Schritte wie in diesem Tutorial ausführen, um große Datensätze zu verarbeiten.

 

Schritt 1: Einrichten der Amazon-SageMaker-Studio-Domäne

Ein AWS-Konto kann nur eine SageMaker-Studio-Domäne pro AWS-Region haben. Wenn Sie bereits eine SageMaker-Studio-Domäne in der Region USA Ost (Nord-Virginia) haben, befolgen Sie die SageMaker-Studio-Einrichtungsanleitung, um die erforderlichen AWS IAM-Richtlinien an Ihr SageMaker-Studio-Konto anzuhängen, überspringen Sie dann Schritt 1 und fahren Sie direkt mit Schritt 2 fort. 

Wenn Sie keine bestehende SageMaker-Studio-Domäne haben, fahren Sie mit Schritt 1 fort, um eine AWS-CloudFormation-Vorlage auszuführen, die eine SageMaker-Studio-Domäne erstellt und die für den Rest dieses Tutorials erforderlichen Berechtigungen hinzufügt.

Wählen Sie den AWS-CloudFormation-Stack-Link. Dieser Link öffnet die AWS-CloudFormation-Konsole und erstellt Ihre SageMaker-Studio-Domäne und einen Benutzer namens studio-user. Es fügt auch die erforderlichen Berechtigungen zu Ihrem SageMaker-Studio-Konto hinzu. Bestätigen Sie in der CloudFormation-Konsole, dass USA Ost (Nord-Virginia) die in der oberen rechten Ecke angezeigte Region ist. Der Stack-Name sollte CFN-SM-IM-Lambda-Catalog lauten und nicht geändert werden. Dieser Stack benötigt etwa 10 Minuten, um alle Ressourcen zu erstellen.

Dieser Stack setzt voraus, dass Sie bereits eine öffentliche VPC in Ihrem Konto eingerichtet haben. Wenn Sie keine öffentliche VPC haben, erfahren Sie unter VPC mit einem einzigen öffentlichen Subnetz wie Sie eine öffentliche VPC erstellen.

Wählen Sie Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt und wählen Sie dann Stack erstellen aus.

Wählen Sie im Bereich CloudFormation die Option Stacks aus. Wenn der Stack erstellt ist, sollte der Status des Stacks von CREATE_IN_PROGRESS zu CREATE_COMPLETE wechseln.

Geben Sie SageMaker Studio in die Suchleiste der CloudFormation-Konsole ein und wählen Sie dann SageMaker Studio aus.

Wählen Sie USA Ost (Nord-Virginia) aus der Dropdown-Liste Region in der oberen rechten Ecke der SageMaker-Konsole. Wählen Sie für App starten, Studio aus, um SageMaker Studio mit dem Profil studio-user zu öffnen.
 

Schritt 2: Starten eines neuen SageMaker-Autopilot-Experiments

Das Entwickeln und Testen einer großen Anzahl von Modellkandidaten ist für Machine Learning (ML)-Projekte von entscheidender Bedeutung. Amazon SageMaker Autopilot hilft dabei, indem es verschiedene Modellkandidaten bereitstellt und anhand Ihrer Daten automatisch das beste Modell auswählt. In diesem Schritt konfigurieren Sie ein SageMaker-Autopilot-Experiment, um den Erfolg einer Marketingkampagne für Finanzdienstleistungen vorherzusagen. Dieser Datensatz stellt eine Marketingkampagne dar, die von einem großen Finanzdienstleistungsinstitut durchgeführt wurde, um für die Beantragung von Einlagenzertifikaten zu werben.

Um ein neues SageMaker Autopilot-Experiment zu starten, klicken Sie auf das +-Symbol, um auf ein neues Launcher-Fenster zuzugreifen. Scrollen Sie im Launcher-Fenster nach unten zu ML-Aufgaben und -Komponenten. Klicken Sie auf das Symbol + für Neues Autopilot-Experiment.

Als Nächstes benennen Sie Ihr Experiment. Klicken Sie in das Feld Name des Experiments und geben Sie als Namen autopilot-experiment ein.

 

Als Nächstes werden Sie das Experiment mit Daten verbinden, die in S3 bereitgestellt werden. Klicken Sie auf das Feld Speicherort des S3-Buckets eingeben. Fügen Sie in das FeldAdresse des S3-Buckets den folgenden S3-Pfad ein: s3://sagemaker-sample-files/datasets/tabular/uci_bank_marketing/bank-additional-full.csv

Lassen Sie die Option für die Manifestdatei auf Aus eingestellt. Wählen Sie in der Dropdown-Liste Ziel y als Zielmerkmal aus, das unser Modell vorherzusagen versucht.

Wählen Sie in der Tabelle Speicherort der Ausgabedaten (S3-Bucket) Ihren eigenen S3-Bucket aus. Geben Sie im Feld Datensatz-Verzeichnisname sagemaker/tutorial-autopilot/output ein. Hier werden die Ausgabedaten gespeichert, sobald das Experiment abgeschlossen ist.

Lassen Sie die Option Automatisch bereitstellen aktiviert und das Feld Endpunkt automatisch bereitstellen leer. Dadurch wird unser Modell automatisch als API-Endpunkt bereitgestellt und ein Name zugewiesen.

Als nächstes gibt es eine Reihe optionaler erweiterter Einstellungen, die die Details des Problemtyps, das vollständige Experiment, Laufzeitdetails, IAM-Zugriff, Sicherheit und Verschlüsselung und andere steuern. Klicken Sie auf die Laufzeitschaltfläche, um die optionalen Einstellungen anzuzeigen.

Verringern Sie für dieses Tutorial die Anzahl der Max.-Kandidaten von 250 auf 5. Dadurch werden weniger Modelle schneller ausgeführt. Ein vollständiges Experiment ist der beste Ansatz, um Ihr Modell wirklich zu optimieren, aber es kann Stunden dauern, bis es abgeschlossen ist. Für dieses Tutorial behalten wir die optionalen Einstellungen unverändert bei.

Klicken Sie auf die Schaltfläche Experiment erstellen, um mit der ersten Phase des SageMaker-Autopilot-Experiments zu beginnen. SageMaker Autopilot beginnt, die Phasen eines Experiments zu durchlaufen. Im Experimentfenster können Sie den Fortschritt in den Phasen der Vorverarbeitung, Kandidatendefinitionen, Merkmalentwicklung, Modelloptimierung, Erklärbarkeit und Erkenntnisse verfolgen.

Klicken Sie auf die Schaltfläche Experiment erstellen, um mit der ersten Phase des SageMaker-Autopilot-Experiments zu beginnen. SageMaker Autopilot beginnt, die Phasen eines Experiments zu durchlaufen. Im Experimentfenster können Sie den Fortschritt in den Phasen der Vorverarbeitung, Kandidatendefinitionen, Merkmalentwicklung, Modelloptimierung, Erklärbarkeit und Erkenntnisse verfolgen. Wenn Sie eine Popup-Benachrichtigung mit der Frage „Sind Sie sicher, dass Sie das beste Modell bereitstellen möchten?“ sehen. klicken Sie auf Ja.

Sobald der SageMaker-Autopilot-Auftrag abgeschlossen ist, können Sie auf einen Bericht zugreifen, der die Kandidatenmodelle, den Status des Kandidatenmodells, den Zielwert, die F1-Punktzahl und die Genauigkeit anzeigt. SageMaker Autopilot stellt den Endpunkt automatisch bereit.

Schritt 3: Interpretieren der Modellleistung

Nachdem das Experiment nun abgeschlossen ist und Sie ein Modell haben, besteht der nächste Schritt darin, seine Leistung zu interpretieren. Sie werden nun lernen, wie Sie SageMaker Autopilot verwenden, um die Leistung des Modells zu analysieren.

Nachdem das SageMaker-Autopilot-Experiment abgeschlossen ist, können Sie das Top-Ranking-Modell öffnen, um weitere Details zur Leistung und zu den Metadaten des Modells zu erhalten. Markieren Sie in der Liste der Modelle das erste und klicken Sie mit der rechten Maustaste, um die Modelloptionen aufzurufen. Klicken Sie auf In Modelldetails öffnen, um die Leistungsstatistiken des Modells anzuzeigen.

Klicken Sie im neuen Fenster auf Erklärbarkeit. Die erste Ansicht, die Sie sehen, heißt Merkmalwichtigkeit und stellt den aggregierten SHAP-Wert für jedes Merkmal in jeder Instance des Datensatzes dar. Die Bewertung der Merkmalwichtigkeit ist ein wichtiger Teil der Erklärbarkeit des Modells, da sie zeigt, welche Merkmale dazu neigen, die Vorhersagen im Datensatz am meisten zu beeinflussen. In diesem Anwendungsfall sind die Dauer oder Betriebszugehörigkeit des Kunden und die Schwankungsrate der Beschäftigung die beiden wichtigsten Felder für das Ergebnis des Modells.

Klicken Sie nun auf die Registerkarte Leistung. Sie finden detaillierte Informationen zur Leistung des Modells, einschließlich Genauigkeit, Präzision und Rückruf. Sie können auch die Modellleistung interpretieren und entscheiden, ob eine zusätzliche Modelloptimierung erforderlich ist.

Als nächstes werden Visualisierungen bereitgestellt, um die Modellleistung weiter zu veranschaulichen. Sehen Sie sich zuerst die Konfusionsmatrix an. Die Konfusionsmatrix wird häufig verwendet, um zu verstehen, wie sich die Modellbezeichnungen zwischen den vorhergesagten und wahren Klassen aufteilen. In diesem Fall zeigen die diagonalen Elemente die Anzahl der korrekt vorhergesagten Bezeichnungen und die nicht diagonalen Elemente zeigen die falsch klassifizierten Datensätze. Eine Konfusionsmatrix ist nützlich für die Analyse von Fehlklassifikationen aufgrund von falsch-positiven und falsch-negativen Ergebnissen.

Sehen Sie sich als Nächstes die Kurve für die Genauigkeit im Vergleich zum Rückruf an. Diese Kurve interpretiert die Bezeichnung als Wahrscheinlichkeitsschwelle und zeigt den Kompromiss, der bei verschiedenen Wahrscheinlichkeitsschwellen für die Modellpräzision und -erinnerung auftritt. SageMaker Autopilot optimiert diese beiden Parameter automatisch, um das beste Modell bereitzustellen.

Sehen Sie sich als Nächstes die Kurve mit der Bezeichnung Receiver Operating Characteristic (ROC) an. Diese Kurve zeigt die Beziehung zwischen der richtig-positiv-Rate und der falsch-positiv-Rate über eine Vielzahl potenzieller Wahrscheinlichkeitsschwellenwerte hinweg. Eine diagonale Linie stellt ein hypothetisches Modell dar, das auf zufälligen Vermutungen beruht. Je mehr sich diese Kurve nach oben links im Diagramm bewegt, desto besser wird das Modell abschneiden.

Die gestrichelte Linie stellt ein Modell mit einem Vorhersagewert von 0 dar, das oft als Nullmodell bezeichnet wird. Das Nullmodell würde zufällig eine 0/1-Bezeichnung zuweisen, und seine Fläche unter der ROC-Kurve wäre 0,5, was bedeutet, dass es in 50 % der Fälle genau wäre.

Klicken Sie anschließend auf die Registerkarte Artefakte. Hier finden Sie die unterstützenden Elemente des SageMaker-Autopilot-Experiments, einschließlich Merkmalsentwicklungscode, Speicherorte von Eingabedaten und Erklärbarkeitsartefakte.

Klicken Sie abschließend auf die Registerkarte Netzwerk. Hier finden Sie weitere Informationen zur Netzwerkisolierung und zur Verschlüsselung des Containerverkehrs.

Schritt 4: Testen des SageMaker-Modell-Endpunkts

Nachdem Sie die Details des Modells überprüft haben, testen Sie den Endpunkt.

Klicken Sie auf das Symbol +, um ein neues Python-Notizbuch aufzurufen. Wählen Sie Python3 als Kernel. Kopieren Sie in der ersten Zelle den folgenden Code und fügen Sie ihn ein. Dieser Code erstellt eine Nutzlast, sendet eine Anforderung an den Modellendpunkt und analysiert die Antwort.

Um zu wissen, wohin die Anfrage gesendet werden soll, suchen Sie den Namen des Modellendpunkts. Klicken Sie im linken Bereich auf das Symbol SageMaker-Ressourcen. Wählen Sie im SageMaker-Ressourcenbereich Endpunkte aus. Klicken Sie auf den Endpunkt, der dem Experimentnamen zugeordnet ist, den Sie zu Beginn dieses Tutorials erstellt haben. Daraufhin wird das Fenster Endpunktdetails angezeigt. Notieren Sie den Namen des Endpunkts und navigieren Sie zurück zum Python-3-Notizbuch.

Kopieren Sie den folgenden Codeausschnitt, fügen Sie ihn in eine Zelle im Notizbuch ein, und drücken Sie Umschalt+Eingabe, um die aktuelle Zelle auszuführen. Dieser Code legt die Umgebungsvariable ENDPOINT_NAME fest und führt die Inferenz aus. Nach Abschluss des Codes sehen Sie ein Ergebnis, das aus der Modellbezeichnung und dem zugehörigen Wahrscheinlichkeitswert besteht.
import os
import io
import boto3
import json
import csv

#: Define the endpoint's name.
ENDPOINT_NAME = 'autopilot-experiment-6d00f17b55464fc49c45d74362f284ce'
runtime = boto3.client('runtime.sagemaker')

#: Define a test payload to send to your endpoint.
payload = {
    "data":{
        "features": {
            "values": [45,"blue-collar","married","basic.9y",'unknown',"yes","no","telephone","may","mon",461,1,999,0,"nonexistent",1.1,93.994,-36.4,4.857,5191.0]
        }
    }
}

#: Submit an API request and capture the response object.
response = runtime.invoke_endpoint(
    EndpointName=ENDPOINT_NAME,
    ContentType='text/csv',
    Body=str(payload)
)

#: Print the model endpoint's output.
print(response['Body'].read().decode())

Herzlichen Glückwunsch! Sie haben gelernt, wie Sie mithilfe von SageMaker Autopilot ein Machine-Learning-Modell automatisch trainieren und bereitstellen.

Schritt 5: Bereinigen Ihrer AWS-Ressourcen

Es hat sich bewährt, Ressourcen zu löschen, die Sie nicht mehr verwenden, um unerwünschte Gebühren zu vermeiden.

Wenn Sie die CloudFormation-Vorlage in Schritt 1 ausgeführt haben, um eine neue SageMaker-Studio-Domäne zu erstellen, fahren Sie mit den folgenden Schritten fort, um die Domäne, den Benutzer und die von der CloudFormation-Vorlage erstellten Ressourcen zu löschen.

Um die CloudFormation-Konsole zu öffnen, geben Sie CloudFormation in die Suchleiste der AWS-Konsole ein, und wählen Sie CloudFormation aus den Suchergebnissen aus.

Im Bereich CloudFormation, wählen Sie die Option Stacks. Wählen Sie in der Dropdown-Liste Status Aktiv aus. Wählen Sie unter Stack-Name CFN-SM-IM-Lambda-Catalog aus, um die Stack-Detailseite zu öffnen.

Wählen Sie auf der Stack-Detailseite CFN-SM-IM-Lambda-Catalog die Option Löschen, um den Stack zusammen mit den in Schritt 1 erstellten Ressourcen zu löschen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben nun das Tutorial Automatisches Erstellen eines Machine-Learning-Modells abgeschlossen.

Sie haben SageMaker Autopilot erfolgreich verwendet, um Modelle automatisch zu erstellen, zu trainieren und zu optimieren und dann das beste Kandidatenmodell bereitzustellen, um Vorhersagen zu treffen.

War diese Seite hilfreich?

Nächste Schritte

Erhalt weiterer Informationen zu Amazon SageMaker Autopilot

Webseite besuchen
Weitere Informationen »

SageMaker-Autopilot-Dokumentation erkunden

Erste Schritte mit Amazon SageMaker Autopilot erkunden
Weitere Informationen »
Weitere praktische Tutorials finden
Weitere praktische Tutorials für die Nutzung von ML finden
Erste Schritte »