MT Logo

Kundenbedürfnisse identifizieren – Teil 2: Datenanreicherung mit externen Dienstleistern

Ein Data-Science-Projektbericht

In unserer Blogreihe zu unserem Data-Science-Projekt bei einem Lebensmittelgroßhandel, zeigen wir exemplarisch, wie wichtig die Identifikation von Kundenbedürfnissen für den Geschäfts Erfolg sind. Im ersten Teil haben wir den Ist-Zustand analysiert und mögliche Herausforderungen identifiziert. Wie wir an die Daten kommen, um den Kunden unseres Projektpartners die Informationen zu liefern, die sie benötigen, lesen Sie im zweiten Teil.

Lösungsansatz und Vorgehen

Der erste Schritt im Projekt war deshalb eine Datenanreicherung der Kundeninformationen mithilfe von externen Diensten (siehe Abbildung 1).

Anschließend teilten wir unter Einsatz von Clustering-Algorithmen aus dem Machine-Learning-Bereich (Schritt 2) die Gastronomiekunden anhand ihrer Stammdaten, weiterer Kundenmerkmale und ihres Kaufverhaltens in unterschiedliche Gruppen ein. Ein vereinfachendes Beispiel einer Gruppe sah wie folgt aus: spanische Restaurants mit einem hohen Umsatz bei Meeresprodukten und Gemüse, die mittelpreisige Gerichte anbieten und online häufig und sehr gut bewertet waren. In der abschließenden Cluster-Bildung benutzten wir weitere Merkmale, die im späteren Abschnitt Kundensegmentierung (ebenfalls Schritt 2) vorgestellt werden. Darauf aufbauend führten wir für jede dieser Gruppen eine Warenkorbanalyse (Schritt 3) durch, bei der die häufig gemeinsam gekauften Produkte identifiziert wurden. Damit konnten wir zum Beispiel den spanischen Restaurants mediterrane Warenkörbe anbieten, bestehend aus Produktvorschlägen und -kombinationen, die für sie von Interesse waren. Aus diesen Erkenntnissen und zusätzlichen Data-Science-Analysen, die wir im weiteren Verlauf dieses Berichtes noch vorstellen, entwickelten wir verbesserte und neue Produkte (Schritt 4). Im Folgenden stellen wir die Projektschritte im Detail vor.

Möglichkeiten der Datenanreicherung

An zusätzliche Daten kann man über unterschiedliche Ansätze kommen:

  • Informationen über Analyse der Stammdaten ableiten: Zum Beispiel wird der Kunde „Pizzeria Italia“ voraussichtlich ein italienisches Restaurant sein.
  • Daten bei einem Adresshändler unter Berücksichtigung der DSGVO dazukaufen. Es ist von Fall zu Fall zu bewerten, welcher Anbieter infrage kommt. In unserem Fall spielten dafür Daten im Bereich Gastronomie und Hotellerie eine Rolle.
  • Einsatz von Web-Crawling für weitere Kundenmerkmale.
  • Nutzung externer Dienste mittels Web-APIs.

Um eine optimierte Datengrundlage für eine Kundensegmentierung zu schaffen, entschieden wir uns nach der Prüfung der möglichen Varianten gemeinsam mit unserem Kunden für die Nutzung von Web-APIs. Dabei waren die Aspekte des Aufwandes und der Datenverfügbarkeit sowie juristische Gründe entscheidend. Durch die Nutzung von Web-APIs von später noch vorgestellten Anbietern konnten wir gezielt weitere Kundenmerkmale abfragen.

Auswahl der externen Dienste

Die wichtigste Frage bei der Auswahl der externen Dienste ist sicherlich, welche Informationen für den jeweiligen Anwendungsfall benötigt werden. Für Kunden aus dem Gastronomiebereich identifizierten wir die Branche, den Küchenstil, die durchschnittliche Bewertungshöhe und die Anzahl der Online-Bewertungen sowie die Preiskategorie als wichtige Merkmale. Bei der Auswahl evaluierten wir zehn Anbieter hinsichtlich der dazu verfügbaren Datenbasis, der Kosten und der rechtlichen Nutzung. Gemeinsam entschieden wir uns für zwei kostenlose Anbieter – den Kartendienst Nokia Here [1] und das Facebook Graph API [2] – sowie das kostenpflichtige Google Places API [3].

Auf den Webseiten von Google, Facebook und Nokia Here finden sich diverse Informationen zu sogenannten Point-of-Interests (siehe Abbildung 2). Über das fiktive Restaurant Lecker lässt sich beispielsweise ermitteln: Es ist ein mittelpreisiges, italienisches Restaurant, das über 1


,

if (longitude != '-' and latitude != '-'):
searchtext = urllib.parse.quote(data[''+column][i])
url = 'https://places.cit.api.here.com/places/v1/discover/search?in=' 
+latitude+','+longitude+';r=500&q='+searchtext+ 
'app_id='+here_app_id+'&app_code='+here_app_code
response = requests.get(url, verify=False)

2 Bewertungen verfügt, die im Schnitt bei einem Wert von 4,4 von 5 Sternen liegen. Über eigens entwickelte Prozesse in Python und eine anschließende Anbindung in das ETL-Tool (Extract, Transform, Load) des Kunden konnten diese Daten unter Berücksichtigung der DSGVO und der Nutzungsbedingungen der externen Dienste angezogen und abgespeichert werden.


,

if (longitude != '-' and latitude != '-'):
searchtext = urllib.parse.quote(data[''+column][i])
url = 'https://places.cit.api.here.com/places/v1/discover/search?in=' 
+latitude+','+longitude+';r=500&q='+searchtext+ 
'app_id='+here_app_id+'&app_code='+here_app_code
response = requests.get(url, verify=False)

>

Listing 1: API-Call des Kartendienstes NOKIA HERE (©Copyright MT ).

Name Status Kategorie Küchenstil Preiskategorie
Restaurant Lecker GmbH Gefunden Restaurant Italienisch Mittel
Tabelle 1: Ergebnis der API-Calls im Idealfall (©MT)

Ablauf des API-Calls

Die grundsätzliche Ansprache von Web-APIs ist nicht sehr komplex, da dies ein standardisiertes Vorgehen (zum Beispiel REST API) ist. Das API wird mit bestimmten Suchparametern angesprochen und man erhält eine Antwort zurück. Um Daten zu einem Unternehmen zu erhalten, führt man eine Suchanfrage mit einer Kombination des Kundennamens und der -adresse sowie der Accountdaten des jeweiligen Dienstes aus. Ein solcher Aufruf ist in Listing 1 abgebildet.

Im Idealfall werden die Daten als Ergebnis der API-Anfrage wie in Tabelle 1 zurückgeliefert.

Plan vs. Wirklichkeit

So die Theorie. Aber wie im echten Leben wich die Realität auch in diesem Projekt davon ab. Wir wurden mit unterschiedlichen Hürden konfrontiert, die die Datenanreicherung komplizierter gestalteten, als es zunächst den Anschein hatte (siehe Abbildung 3).

Welche Hürden das waren und wie wir diese umgangen sind, berichten wir im letzten Teil unseres Data-Science-Projektberichtes.

Quellen:

[1] https://developer.here.com/

[2] https://developers.facebook.com/docs/graph-api/ [3] https://developers.google.com/places/web-service/overview

Jetzt teilen auf:

Jetzt kommentieren