8.1 Datenexploration und -umwandlung

Um ein Modell für maschinelles Lernen zu erstellen, mit dem Produkte empfohlen werden, die Benutzern bei der Anzeige eines bestimmten Produkts angezeigt werden, müssen Sie die vorherigen Käufe von Benutzern auf der Website analysieren. In dieser Lektion werden Sie die Kaufdaten, die über Adobe Analytics an die Plattform gesendet werden, untersuchen und diese Daten in einen Funktionsdatensatz umwandeln, der Ihnen bei der Ausbildung Ihres maschinellen Lernmodells hilft.

Die URL für die Anmeldung bei Adobe Experience Platform lautet: https://experience.adobe.com/platform

8.1.1 Datasets und XDM-Schema

Erlebnisdatenmodelle (XDM) unter Adobe Experience Platform helfen Ihnen, Ihre Daten zu standardisieren, damit sie in Ihrem Unternehmen effizient genutzt werden können.

Melden Sie sich bei Adobe Experience Platform an.

Nach dem Anmelden landen Sie auf der Homepage von Adobe Experience Platform.

Datenaufnahme

Bevor Sie fortfahren, müssen Sie eine Sandbox auswählen. Die auszuwählende Sandbox trägt den Namen --aepSandboxId--. Klicken Sie dazu auf den Text Produktions-Prod in der blauen Zeile oben auf Ihrem Bildschirm.

Datenaufnahme

Nachdem Sie die entsprechende Sandbox ausgewählt haben, sehen Sie die Änderung des Bildschirms, und jetzt befinden Sie sich in Ihrer eigenen Sandbox.

Datenaufnahme

Klicken Sie im linken Menü auf Datensätze.

DSW

Um ein Modell für Produktempfehlungen für maschinelles Lernen zu entwickeln, sind wir an Produkten interessiert, die Benutzer zuvor bei Luma gekauft haben. Um die für die Ausbildung unseres maschinellen Lernmodells erforderlichen Daten zu optimieren, haben wir ein einfaches Schema namens Recommendations Input Schema erstellt, wie in der folgenden Tabelle beschrieben (Schlüsselfelder: userid - der Benutzer, der mit der Luma Website interagiert hat, Zeitstempel - Zeit der Interaktion, Interaktionstyp - Kauf, Produkt - mit dem der Benutzer interagiert hat).

In diesem Tutorial verwenden wir drei Datensätze:

Dataset-Name Datensatzschema Beschreibung
Demosystem - Ereignis DataSet für Website (Global v1.1) Demosystem - Ereignis DataSet für Schema der Website (Global v1.1) Clickstream-Daten von Websites
Demosystem - Ereignis DataSet für Recommendations Model Input (Global v1.1) Demosystem - Ereignis-Schema für Recommendations-Modelleingabe (Global v1.1) Die Clickstream-Daten werden mithilfe einer Feature/Training-Pipeline in ein Feature/Training-Dataset konvertiert. Diese Daten werden verwendet, um das Produkt Recommendations-Modell für maschinelles Lernen zu schulen. itemid und userid entsprechen einem Produkt, das dieser Benutzer zum Zeitpunkt des Zeitstempels gekauft hat
Demosystem - Profil DataSet für ML Predictions (Global v1.1) Demosystem - Profil-Schema für ML-Prognosen (Global v1.1) Schema Dies ist der Datensatz, den Sie nach der Auswertung erhalten. Dies enthält die Liste der empfohlenen Produkte für jeden Benutzer

Schauen wir uns einmal den Dataset Demo System - Ereignis DataSet for Website (Global v1.1) an.

Geben Sie auf der Seite "Datasets -"im Suchfeld Demosystem - Ereignis-Dataset für Website ein.

DSW

Öffnen Sie den Datensatz Demosystem - Ereignis-Datensatz für Website (Global v1.1).

DSW

Wenn Sie auf die Schaltfläche Vorschau DataSet klicken, können Sie sehen, welche Daten in diesen Datensatz gesendet werden und wie das Datenmodell aussieht. FYI - Ihre Daten in Ihrem Datensatz können anders aussehen. Das ist normal und erwartet.

DSW

DSW

Schließen Sie das Fenster "Vorschau"Ihres Datensatzes.

Schauen wir uns das Schema an, das für diesen Datensatz definiert wurde.

Wählen Sie im linken Menü Schema.

DSW

Suchen Sie in der Übersicht über die Schemas nach den 3 Schemas, die Sie in diesem Labor verwenden werden.

Name des Schemas
Demosystem - Ereignis-Schema für Recommendations-Modelleingabe (Global v1.1)
Demosystem - Profil-Schema für ML-Prognosen (Global v1.1)
Demosystem - Ereignis-Schema für Website (Global v1.1)

Klicken Sie auf , um das Schema Demosystem - Ereignis-Schema für Website (Global v1.1) zu öffnen.

DSW

8.1.2 Offene Jupyter-Notebooks

Lassen Sie uns jetzt die Hände schmutzig machen, indem wir zu Jupyter-Notebooks gehen.

Klicken Sie im linken Menü auf Notebooks.

DSW

Klicken Sie auf JupyterLab. Sie sehen jetzt das Laden von JupyterLab. Dies kann 1-2 Minuten dauern.

DSW

Sobald Jupyter-Notebooks ausgeführt werden, können Sie mit dem nächsten Schritt fortfahren.

DSW

8.1.3 Clickstream-Daten transformieren

Jupyter-Notebooks werden ausgeführt, damit Sie den Vorgang zum Erstellen Ihres Notebooks und zum Hinzufügen des erforderlichen Codes zur Umwandlung von Clickstream-Daten in ein brauchbares Dataset, das für Schulungen bereit ist, Beginn leisten können.

DSW

Öffnen Sie in Jupyter-Notebooks ein leeres Notizbuch Python 3, indem Sie auf die Schaltfläche Leer im Starter klicken.

DSW

Dann haben Sie ein leeres neues Python 3 Notebook. Bevor Sie fortfahren, geben Sie Ihrem Notebook einen beschreibenden Namen. Klicken Sie mit der rechten Maustaste auf die Datei Unbenannt.ipynb und klicken Sie auf Umbenennen.

DSW

Geben Sie luma-recommendations-feature-transformation.ipynb als Namen für Ihr Notebook ein und klicken Sie auf Eingabetaste. Dann haben Sie Folgendes:

DSW

Nächste Schritte:

  • Definieren Sie die Eingabe- und Ausgabedaten für dieses Notebook.
  • Plattform lesen: Laden Sie das Eingabedataset und beschreiben Sie es
  • Löschen leerer Werte
  • Aufteilen der Datei "item_id"in einzelne Datensätze
  • Erstellen Sie einen neuen Datenrahmen, der die Daten enthält, die wir für unser Modell benötigen
  • Auf Plattform schreiben: Geben Sie diesen Datenrahmen in einen Datensatz in Adobe Experience Platform aus

Definieren Sie die Eingabe- und Ausgabedaten für dieses Notebook.

Klicken Sie in die erste Zelle des Notebooks.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die erste Zelle Ihres Notebooks ein.

import pandas as pd

inputDataset="--aepWebsiteInteractionsDatasetId--" # Demo System - Event Dataset for Website (Global v1.1) Dataset
outputDataset="--aepRecommendationsInputDatasetId--" # Demo System - Event Dataset for Recommendations Model Input (Global v1.1)
tenant_id = "--aepTenantId--"
item_id = "web.webPageDetails.name"
interactionType = "eventType"
user_id = "--aepTenantId--.identification.core.ecid"
brand_name = "--aepTenantId--.demoEnvironment.brandName"
timestamp = "timestamp"
idcolumn = "_id"

client_context = PLATFORM_SDK_CLIENT_CONTEXT
WICHTIG

Die Umgebung-Variablen aepWebsiteInteractionsDataSetId und aepRecommendationsInputDataId beziehen sich auf die DataSet-IDs von Datensätzen, die in Ihrer Adobe Experience Platform-Instanz erstellt wurden.

aepWebsiteInteractionsDataSetID bezieht sich auf die DataSet-ID des Demosystems - Ereignis DataSet für Website (Global v1.1), ​aepRecommendationsInputDataSetID bezieht sich auf die Dataset-ID des Dataset Demo Systems - Ereignis DataSet for Recommendations Model Input (Global v1.1). Ersetzen Sie die Umgebung durch die Datensatzkennungen, wenn Sie den Code in die erste Ihres Notebooks einfügen.

Sie haben dann Folgendes in Zelle 1:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Die Ausführung dieser Zelle kann einige Sekunden bis Minuten dauern. Warten Sie einfach und machen Sie nichts anderes in diesem Notebook, bis Sie das unten stehende Ergebnis erhalten.

Jedes Mal, wenn Sie die Abspielen-Taste drücken, um eine Zelle auszuführen, wird ein Indikator angezeigt, der Ihnen mitteilt, ob Ihre Aktion noch läuft oder nicht.

Dies ist der Indikator, wenn Sie auf die Wiedergabetaste drücken, um eine Zelle auszuführen:

DSW

Dies ist der Indikator, wenn die Zelle ausgeführt und die Aktion abgeschlossen wurde:

DSW

Fahren Sie die Übungen erst dann fort, wenn der Indikator zeigt, dass die Ausführung abgeschlossen ist. Wenn Sie nicht warten, bis die Ausführung abgeschlossen ist, werden Sie in den nächsten Schritten festsitzen und viele Fehler erhalten. Dies gilt für die Ausführung aller Zellen eines Jupyter-Notebooks: Warten Sie immer, bis die Ausführung abgeschlossen ist. Der Indikator ändert sich und sieht wie folgt aus:

DSW

Es gibt kein visuelles Ergebnis nach der Ausführung von Zelle 1. Nachdem Sie auf die Wiedergabeschaltfläche geklickt haben, fahren Sie mit dem nächsten Schritt fort.

Von Plattform lesen: Laden Sie das Eingabedataset und zeigen Sie einen Überblick über die Daten

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

from platform_sdk.dataset_reader import DatasetReader

dataset_reader = DatasetReader(client_context, inputDataset)
df = dataset_reader.limit(1000).read()
df.head()

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

Die Ausführung dieser Zelle kann 1-2 Minuten dauern. Warten Sie einfach und machen Sie nichts anderes in diesem Notebook, bis Sie das unten stehende Ergebnis erhalten.

DSW

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Das Ergebnis sieht wie folgt aus (ist jedoch nicht identisch - in Ihrer Adobe Experience Platform-Instanz stehen möglicherweise mehr oder weniger Daten zur Verfügung):

DSW

Leere Werte herausfiltern und Daten für Marke Luma auswählen

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

# drop nulls
df = df.dropna(subset=[user_id, item_id, interactionType, brand_name])

# only focus on one brand
df = df[df[brand_name].isin(["Luma", "Luma Retail"])]

# filter out product views
df = df[df[interactionType].isin(["commerce.productViews"])]

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Nach dieser Ausführung gibt es kein visuelles Ergebnis. Nachdem Sie auf die Wiedergabeschaltfläche geklickt haben, fahren Sie mit dem nächsten Schritt fort.

Elemente in einzelne Datensätze aufteilen

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

# vectorized (no loops) solution for splitting in pandas
# source: https://stackoverflow.com/a/48120674
def split_df(dataframe, col_name, sep):
    orig_col_index = dataframe.columns.tolist().index(col_name)
    orig_index_name = dataframe.index.name
    orig_columns = dataframe.columns
    dataframe = dataframe.reset_index()
    index_col_name = (set(dataframe.columns) - set(orig_columns)).pop()
    df_split = pd.DataFrame(
        pd.DataFrame(dataframe[col_name].str.split(sep).tolist())
        .stack().reset_index(level=1, drop=1), columns=[col_name])
    df = dataframe.drop(col_name, axis=1)
    df = pd.merge(df, df_split, left_index=True, right_index=True, how='inner')
    df = df.set_index(index_col_name)
    df.index.name = orig_index_name

    return df

df2 = split_df(df, item_id, "\|\|")

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Die Ausführung dieser Zelle kann 1-2 Minuten dauern. Warten Sie einfach und machen Sie nichts anderes in diesem Notebook, bis Sie das unten stehende Ergebnis erhalten.

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Nach dieser Ausführung gibt es kein visuelles Ergebnis. Nachdem Sie auf die Wiedergabeschaltfläche geklickt haben, fahren Sie mit dem nächsten Schritt fort.

Vorbereiten der Daten vor dem Speichern unter Adobe Experience Platform

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

filtered_column_list = [idcolumn, item_id, user_id, interactionType, brand_name, timestamp]

df2 = df2[filtered_column_list]

df2.rename(columns={
    item_id: tenant_id + ".recommendationsInput" + ".productSku",
    user_id: tenant_id + ".recommendationsInput" + ".ecid",
    interactionType: tenant_id + ".recommendationsInput" + ".interactionType",
    brand_name: tenant_id + ".recommendationsInput" + ".brandName"
}, inplace=True)

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Die Ausführung dieser Zelle kann 1-2 Minuten dauern. Warten Sie einfach und machen Sie nichts anderes in diesem Notebook, bis Sie das unten stehende Ergebnis erhalten.

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Nach dieser Ausführung gibt es kein visuelles Ergebnis. Nachdem Sie auf die Wiedergabeschaltfläche geklickt haben, fahren Sie mit dem nächsten Schritt fort.

Auf Plattform schreiben: Geben Sie diesen Datenrahmen in einen Datensatz in Adobe Experience Platform aus

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

df2.head()

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Das Ergebnis sieht folgendermaßen aus:

DSW

Klicken Sie auf die nächste leere Zelle im Notebook.

DSW

Kopieren Sie den unten stehenden Code und fügen Sie ihn in die nächste leere Zelle Ihres Notebooks ein.

df2['timestamp'] = pd.to_datetime(df2['timestamp']).apply(lambda x: x.isoformat())

from platform_sdk.models import Dataset
from platform_sdk.dataset_writer import DatasetWriter
dataset = Dataset(PLATFORM_SDK_CLIENT_CONTEXT).get_by_id(dataset_id=outputDataset)
dataset_writer = DatasetWriter(PLATFORM_SDK_CLIENT_CONTEXT, dataset)
write_tracker = dataset_writer.write(df2, file_format='json')

Sie haben dann Folgendes in der Zelle:

DSW

Klicken Sie auf die Wiedergabeschaltfläche, um diese Zelle auszuführen.

DSW

Warten Sie, bis der Indikator wie folgt aussieht, bevor Sie fortfahren:

DSW

Das Ergebnis sieht folgendermaßen aus:

DSW

Das Ergebnis in Adobe Experience Platform ist, dass ein neuer Datenstapel auf dem Demosystem - Ereignis-Datensatz für Recommendations-Modelleingabe (Global v1.1) erstellt wurde, den Sie überprüfen können, indem Sie
hier.

DSW

DSW

Nächster Schritt: 8.2 - Modellerstellung und -operationalisierung

Zurück zu Modul 8

Zurück zu allen Modulen

Auf dieser Seite