Erstellen eines Modells mit JupyterLab-Notebooks
- Themen:
- Data Science Workspace
Erstellt für:
- Benutzende
- Entwickler
Dieses Tutorial führt Sie durch die erforderlichen Schritte zum Erstellen eines Modells mithilfe der JupyterLab Notebook-Rezept-Builder-Vorlage.
Vorgestellte Konzepte:
- Rezepte: Ein Rezept ist Adobes Begriff für eine Modellspezifikation und ein Container der obersten Ebene, der einen bestimmten Algorithmus für maschinelles Lernen, einen KI-Algorithmus oder eine Gruppe von Algorithmen, eine Verarbeitungslogik und eine Konfiguration darstellt, die zum Erstellen und Ausführen eines trainierten Modells erforderlich sind.
- Modell: Ein Modell ist eine Instanz eines maschinellen Lernrezepts, das mithilfe von historischen Daten und Konfigurationen zur Lösung eines geschäftlichen Anwendungsfalls trainiert wird.
- Training: Ein Training besteht aus dem Erlernen von Mustern und Insights auf Grundlage gekennzeichneter Daten.
- Scoring: Beim Scoring werden mithilfe eines trainierten Modells Insights aus Daten generiert.
Herunterladen der erforderlichen Assets
Bevor Sie mit diesem Tutorial fortfahren, müssen Sie die erforderlichen Schemata und Datensätze erstellen. Besuchen Sie das Tutorial zum Erstellen von Luma-Tendenzmodell-Schemata und -Datensätzen, um die erforderlichen Assets herunterzuladen und die Voraussetzungen einzurichten.
Erste Schritte mit der JupyterLab Notebook-Umgebung
Ein Rezept kann in Data Science Workspace von Grund auf neu erstellt werden. Navigieren Sie zunächst zu Adobe Experience Platform und wählen Sie links die Registerkarte Notebooks aus. Um ein neues Notebook zu erstellen, wählen Sie die Rezept-Builder -Vorlage aus der JupyterLab Launcher aus.
Mit dem Recipe Builder-Notebook können Sie Trainings- und Bewertungsdurchgänge im Notebook ausführen. So können Sie zwischen laufenden Experimenten für Trainings- und Scoring-Daten flexibel Änderungen an den train()
- und score()
-Methoden vorzunehmen. Sobald Sie mit den Ergebnissen des Trainings und der Bewertung zufrieden sind, können Sie das Rezept erstellen und es außerdem als Modell veröffentlichen, indem Sie die Funktion Rezept zum Modellieren verwenden.
Wenn Sie das Notebook Recipe Builder aus dem Starter auswählen, wird das Notebook in einer neuen Registerkarte geöffnet.
Auf der neuen Notebook-Registerkarte oben wird eine Symbolleiste geladen, die drei zusätzliche Aktionen enthält: , Ergebnis und Rezept erstellen. Diese Symbole erscheinen nur im Recipe Builder-Notebook. Weitere Informationen zu diesen Aktionen finden Sie Abschnitt „Training und Bewertung nachdem Sie Ihr Rezept im Notebook erstellt haben.
Erste Schritte mit dem Recipe Builder-Notebook
Im bereitgestellten Asset-Ordner befindet sich ein Luma-propensity_model.ipynb
. Laden Sie mithilfe der Option Notebook hochladen in JupyterLab das bereitgestellte Modell hoch und öffnen Sie das Notebook.
Der Rest dieses Tutorials behandelt die folgenden Dateien, die im Notebook für das Tendenzmodell vordefiniert sind:
Im folgenden Video-Tutorial wird das Luma-Tendenzmodell-Notebook erläutert:
Anforderungsdatei
Die Anforderungsdatei wird verwendet, um zusätzliche Bibliotheken zu deklarieren, die Sie im Modell verwenden möchten. Sie können die Versionsnummer angeben, wenn eine Abhängigkeit vorliegt. Weitere Bibliotheken finden Sie unter (.org. Informationen zum Formatieren der Anforderungsdatei finden Sie unter Conda. Die Liste der bereits verwendeten Hauptbibliotheken umfasst:
python=3.6.7
scikit-learn
pandas
numpy
data_access_sdk_python
name
-Feld nicht überschrieben werden.Für das Luma-Tendenzmodell-Notebook müssen die Anforderungen nicht aktualisiert werden.
Konfigurationsdateien
Mit den Konfigurationsdateien training.conf
und scoring.conf
werden die Datensätze angegeben, die Sie für das Training und Scoring sowie das Hinzufügen von Hyperparametern nutzen möchten. Es gibt separate Konfigurationen für Training und Scoring.
Damit ein Modell das Training ausführen kann, müssen Sie die trainingDataSetId
, die ACP_DSW_TRAINING_XDM_SCHEMA
und die tenantId
angeben. Zur Bewertung müssen Sie außerdem die scoringDataSetId
, die tenantId
und die scoringResultsDataSetId
angeben.
Um die Datensatz- und Schema-IDs zu finden, wechseln Sie in Notebooks in der linken Navigationsleiste
scoringResultsDataSetId
wird zum Speichern der Modellbewertungsergebnisse verwendet und sollte ein leerer Datensatz sein. Diese Datensätze wurden zuvor im Schritt Erforderliche Assets erstellt.
Dieselben Daten finden Sie in Adobe Experience Platform unter den Registerkarten Schema und Datensätze.
Nach Abschluss der Schulung sollte Ihre Trainings- und Bewertungskonfiguration dem folgenden Screenshot ähneln:
Standardmäßig sind für das Trainieren und Bewerten von Daten die folgenden Konfigurationsparameter festgelegt:
ML_FRAMEWORK_IMS_USER_CLIENT_ID
ML_FRAMEWORK_IMS_TOKEN
ML_FRAMEWORK_IMS_ML_TOKEN
ML_FRAMEWORK_IMS_TENANT_ID
Grundlegendes zum Trainings-Datenlader
Der Zweck des Ladeprogramms für Trainings-Daten besteht darin, Daten zu instanziieren, die zum Erstellen des maschinellen Lernmodells verwendet werden. In der Regel gibt es zwei Aufgaben, die der Trainings-Datenlader ausführt:
- Daten aus Experience Platform werden geladen
- Datenvorbereitung und Funktionsentwicklung
Die folgenden beiden Abschnitte liefern Informationen über das Laden und Vorbereiten von Daten.
Laden von Daten
In diesem Schritt wird der pandas-Dataframe verwendet. Daten können aus Dateien in Adobe Experience Platform entweder mit dem Experience Platform SDK (platform_sdk
) oder aus externen Quellen mithilfe der read_csv()
- oder read_json()
von Pandas geladen werden.
platform_sdk
-Ladeprogramm geladen.Experience Platform SDK
Ein ausführliches Tutorial zur Verwendung des platform_sdk
Data Loaders finden Sie im Handbuch zu Experience Platform SDK. Dieses Tutorial enthält Informationen zur Build-Authentifizierung, zum grundlegenden Lesen von Daten sowie zum grundlegenden Schreiben von Daten.
Externe Quellen
Dieser Abschnitt veranschaulicht, wie Sie eine JSON- oder CSV-Datei in ein pandas-Objekt importieren können. Die offizielle Dokumentation der pandas-Bibliothek finden Sie hier:
Zunächst finden Sie hier ein Beispiel für den Import einer CSV-Datei. Das data
-Argument ist der Pfad zur CSV-Datei. Diese Variable wurde aus den configProperties
im vorherigen Abschnitt importiert.
df = pd.read_csv(data)
Sie können auch aus einer JSON-Datei importieren. Das data
-Argument ist der Pfad zur CSV-Datei. Diese Variable wurde aus den configProperties
im vorherigen Abschnitt importiert.
df = pd.read_json(data)
Jetzt befinden sich Ihre Daten im Dataframe-Objekt und können im nächsten Abschnitt analysiert und bearbeitet werden.
Trainings-Datenladerdatei
In diesem Beispiel werden Daten mit der Experience Platform SDK geladen. Die Bibliothek kann oben auf der Seite importiert werden, indem die folgende Zeile eingefügt wird:
from platform_sdk.dataset_reader import DatasetReader
Anschließend können Sie die load()
-Methode verwenden, um den Trainings-Datensatz aus dem trainingDataSetId
abzurufen, der in der Konfigurationsdatei (recipe.conf
) festgelegt ist.
def load(config_properties):
print("Training Data Load Start")
#########################################
# Load Data
#########################################
client_context = get_client_context(config_properties)
dataset_reader = DatasetReader(client_context, dataset_id=config_properties['trainingDataSetId'])
client_context = get_client_context(config_properties)
festgelegt:ML_FRAMEWORK_IMS_USER_CLIENT_ID
ML_FRAMEWORK_IMS_TOKEN
ML_FRAMEWORK_IMS_ML_TOKEN
ML_FRAMEWORK_IMS_TENANT_ID
Jetzt, da Sie über Ihre Daten verfügen, können Sie mit der Datenvorbereitung und Funktionsentwicklung beginnen.
Datenvorbereitung und Funktionsentwicklung
Nach dem Laden der Daten müssen diese bereinigt und einer Datenvorbereitung unterzogen werden. In diesem Beispiel besteht das Ziel des Modells darin, vorherzusagen, ob ein Kunde ein Produkt bestellt oder nicht. Da das Modell nicht auf bestimmte Produkte abzielt, ist keine productListItems
erforderlich, weshalb die Spalte entfernt wird. Als Nächstes werden zusätzliche Spalten abgelegt, die nur einen einzigen Wert oder zwei Werte in einer einzigen Spalte enthalten. Beim Trainieren eines Modells ist es wichtig, nur nützliche Daten zu behalten, die bei der Prognose des Ziels hilfreich sind.
Nachdem Sie unnötige Daten gelöscht haben, können Sie mit dem Feature Engineering beginnen. Die für dieses Beispiel verwendeten Demodaten enthalten keine Sitzungsinformationen. Normalerweise möchten Sie Daten zu aktuellen und vergangenen Sitzungen für einen bestimmten Kunden haben. Aufgrund fehlender Sitzungsinformationen ahmt dieses Beispiel stattdessen aktuelle und vergangene Sitzungen über die Journey-Demarkation nach.
Abgrenzung von
Nach Abschluss der Markierung werden die Daten gekennzeichnet und eine Journey erstellt.
Als Nächstes werden die Funktionen erstellt und in Vergangenheit und Gegenwart unterteilt. Anschließend werden alle unnötigen Spalten entfernt, sodass Sie für Luma-Kundinnen und -Kunden sowohl die bisherigen als auch die aktuellen Journey erhalten. Diese Journey enthalten Informationen, z. B. ob ein Kunde einen Artikel gekauft hat, und die Journey, die er vor dem Kauf erhalten hat.
Ladeprogramm für Scoring-Daten
Das Verfahren zum Laden von Daten für die Bewertung ähnelt dem Laden von Schulungsdaten. Wenn Sie sich den Code genau ansehen, können Sie sehen, dass alles gleich ist, mit Ausnahme der scoringDataSetId
im dataset_reader
. Dies liegt daran, dass dieselbe Luma-Datenquelle sowohl für das Training als auch für die Bewertung verwendet wird.
Falls Sie verschiedene Datendateien für das Training und die Bewertung verwenden möchten, ist der Lader für Schulungs- und Bewertungsdaten getrennt. Auf diese Weise können Sie bei Bedarf zusätzliche Vorab-Bearbeitungen durchführen, wie z. B. die Zuordnung Ihrer Trainings-Daten zu Ihren Scoring-Daten.
Pipeline-Datei
Die pipeline.py
-Datei enthält Logik für Training und Bewertung.
Der Zweck des Trainings besteht darin, ein Modell mit Funktionen und Beschriftungen in Ihrem Trainings-Datensatz zu erstellen. Nachdem Sie Ihr Trainings-Modell ausgewählt haben, müssen Sie Ihren X- und Y-Trainings-Datensatz an das Modell anpassen, und die Funktion gibt das trainierte Modell zurück.
Die score()
-Funktion sollte den Scoring-Algorithmus enthalten und einen Messwert zurückgeben, der angibt, wie gut das Modell funktioniert. Die score()
-Funktion nutzt die Bezeichnungen des Scoring-Datensatzes und das trainierte Modell, um eine Reihe von prognostizierten Funktionen zu generieren. Die prognostizierten Werte werden dann mit den tatsächlichen Funktionen im Scoring-Datensatz abgeglichen. In diesem Beispiel verwendet die Funktion score()
das trainierte Modell, um Funktionen mithilfe der Bezeichnungen aus dem Scoring-Datensatz vorherzusagen. Die prognostizierten Funktionen werden zurückgegeben.
Evaluator-Datei
Die Datei evaluator.py
enthält Logiken dazu, wie Sie Ihr trainiertes Rezept bewerten möchten, und dazu, wie Ihre Trainingsdaten aufgeteilt werden sollten.
Datensatz aufteilen
Die Vorbereitung der Daten für das Training erfordert eine Aufteilung des Datensatzes, damit er sich für Training und Tests verwenden lässt. Diese val
Daten werden implizit zur Auswertung des Modells verwendet, nachdem es trainiert wurde. Dieser Prozess erfolgt getrennt vom Scoring.
In diesem Abschnitt wird die split()
angezeigt, die Daten in das Notebook lädt und dann die Daten bereinigt, indem nicht verwandte Spalten im Datensatz entfernt werden. Dort können Sie KE-Engineering durchführen, um zusätzliche relevante KEs aus vorhandenen RohKEs in den Daten zu erstellen.
Trainiertes Modell auswerten
Die evaluate()
wird ausgeführt, nachdem das Modell trainiert wurde, und gibt eine Metrik zurück, die angibt, wie erfolgreich das Modell arbeitet. Die evaluate()
verwendet die Beschriftungen der Testdatensätze und das trainierte Modell, um einen Satz von Funktionen vorherzusagen. Die prognostizierten Werte werden dann mit den tatsächlichen Funktionen im Testdatensatz abgeglichen. In diesem Beispiel werden precision
, recall
, f1
und accuracy
verwendet. Beachten Sie, dass die Funktion ein metric
-Objekt zurückgibt, das eine Gruppe von Auswertungsmetriken enthält. Diese Metriken werden verwendet, um zu bewerten, wie gut das trainierte Modell funktioniert.
Durch Hinzufügen von print(metric)
können Sie die Ergebnisse der Metrik anzeigen.
Data Saver-Datei
Die datasaver.py
-Datei enthält die save()
Funktion und wird verwendet, um Ihre Prognose beim Testen der Bewertung zu speichern. Die save()
-Funktion nimmt Ihre Prognose und schreibt mithilfe Experience Platform Catalog APIs die Daten in den scoringResultsDataSetId
, den Sie in Ihrer scoring.conf
angegeben haben. Sie können
Training und Scoring
Wenn Sie Ihre Änderungen am Notebook vorgenommen haben und Ihr Rezept trainieren möchten, können Sie die zugehörigen Schaltflächen oben in der Leiste auswählen, um einen Trainings-Lauf in der Zelle zu erstellen. Nach Auswahl der Schaltfläche wird ein Protokoll mit Befehlen und Ausgaben aus dem Trainings-Skript im Notebook (unter der evaluator.py
) angezeigt. Conda installiert zunächst alle Abhängigkeiten, dann wird das Training initiiert.
Beachten Sie, dass Sie ein Training mindestens einmal ausführen müssen, bevor Sie mit dem Scoring fortfahren können. Durch Auswahl der Schaltfläche Bewertung ausführen wird die Bewertung für das trainierte Modell ausgeführt, das während des Trainings generiert wurde. Das Bewertungsskript wird unter datasaver.py
angezeigt.
Wenn Sie zum Debuggen die ausgeblendete Ausgabe anzeigen möchten, fügen Sie debug
am Ende der Ausgabenzelle hinzu und führen Sie das Scoring erneut aus.
Rezept erstellen
Wenn Sie das Bearbeiten des Rezepts abgeschlossen und mit der Trainings-/Bewertungsausgabe zufrieden sind, können Sie ein Rezept aus dem Notebook erstellen, indem Sie oben rechts Rezept erstellen auswählen.
Nachdem Sie Rezept erstellen ausgewählt haben, werden Sie aufgefordert, einen Rezeptnamen einzugeben. Dieser Name stellt das eigentliche Rezept dar, das auf Experience Platform erstellt wurde.
Sobald Sie OK auswählen, beginnt der Prozess der Rezepterstellung. Dies kann einige Zeit dauern, und anstelle der Schaltfläche Rezept erstellen wird eine Fortschrittsleiste angezeigt. Nachdem Sie fertig sind, können Sie die Schaltfläche Rezepte anzeigen auswählen, um zur Registerkarte Rezepte unter ML-Modelle zu gelangen
- Löschen Sie keine der Dateizellen.
- Bearbeiten Sie nicht die
%%writefile
-Zeile oben in den Dateizellen. - Erstellen Sie nicht gleichzeitig Rezepte in verschiedenen Notebooks.
Nächste Schritte
Durch Abschluss dieses Tutorials haben Sie gelernt, wie Sie ein Modell für maschinelles Lernen im Recipe Builder“- erstellen. Sie haben auch gelernt, wie Sie den Workflow Notebook-Rezepte trainieren.
Um weiterhin zu lernen, wie Sie mit Ressourcen in Data Science Workspace arbeiten, besuchen Sie die Dropdown-Liste Data Science Workspace Rezepte und Modelle .