Ein Data-Science-Projektbericht

In unserer Blogreihe zu einem Data-Science-Projekt bei einem Lebensmittelgroßhandel zeigen wir exemplarisch, wie wichtig die Identifikation von Kundenbedürfnissen für den Geschäftserfolg sind. Im zweiten Teil haben wir die Voraussetzungen geschaffen, um die nötigen Daten zu erhalten und diese für unseren Kunden erfolgreich einzusetzen. Im letzten Teil unserer Reihe lesen Sie, wie wir an die relevanten Informationen gelangen, die die Kundschaft interessieren und gleichzeitig Unternehmen Wettbewerbsvorteile sichern.

Der erste Aufwandstreiber war die mangelnde Qualität der Stammdaten aus dem DWH, weshalb wir diese vor dem Aufruf des API-Calls zuerst aufbereiten mussten (siehe Abbildung 1). Zum einen wurden im DWH Abkürzungen im Namen und in der Adresse der Kunden verwendet. Zum anderen kamen auch unzulässige Werte in den Daten vor. Hierbei handelte es sich häufig um Zusatzangaben für die Lieferung, zum Beispiel „3. Tor links”.

Abbildung-1-Aufbereitung-der-Stammdaten-fuer-die-API-Calls-©MT-AG

Abbildung 1: Aufbereitung der Stammdaten für die API-Calls (©MT AG)

 

Des Weiteren kam es vor, dass mehrere Namensbezeichnungen und Adressen für denselben Kunden im DWH gespeichert waren. Das war darauf zurückzuführen, dass das System historisch gewachsen war und es bisher kein standardisiertes Verfahren beim Anlegen von Kunden gegeben hatte. Wie in der folgenden Tabelle dargestellt, waren die Angaben zum Namen der Lokalität, zum Inhaber und gegebenenfalls zur Kette in unterschiedlichen Datenfeldern verteilt. Mithilfe einer Abfrage-Logik konnten diese Daten in eine wahrscheinliche Reihenfolge gebracht und systematisch für den API-Call benutzt werden.

Name 1 Name 2 Name 3
Name des Inhabers Name des Restaurants
Name des Restaurants Name des Inhabers
Name der Kette Name des Restaurants
Name des Inhabers Name der Kette

Tabelle 1: Keine eindeutigen Kundennamen im System

Als dritte Hürde stellte sich die fachliche Validierung der API-Antworten heraus. Neben Mehrfachangaben für Kunden im System bekam man für viele Suchanfragen mehrere Einträge als Antwort zurück. Dies war vor allem bei Lokalitäten in der Nähe von Sehenswürdigkeiten und Ausflugszielen zu beachten. Aber wie konnten wir sicherstellen, dass wir wirklich unseren gesuchten Kunden über den API-Call gefunden hatten? Eine solche Prüfung der wahrscheinlichsten Antwort erfolgte mithilfe der sogenannten Levenshtein-Metrik (siehe Tabelle 2). Hohe Werte bedeuten dabei eine große Ähnlichkeit von zwei Zeichenketten – in unserem Fall dem Suchbegriff und der Antwort aus dem API-Call.

Suchbegriff API Antwort Levenshtein-Metrik
Restaurant zur Seeschänke Restaurant Seeschänke 84 %
See Auerbach 19 %

Tabelle 2: Validierung API-Antworten

Ergebnis der Datenanreicherung

Lohnte sich der Aufwand für die Aufbereitungsschritte? Ganz eindeutig ja! Denn die Trefferquote für die API-Calls konnte durch die Optimierung signifikant verbessert werden, wie in Abbildung 2 dargestellt. Wurden zu Beginn mit der einfachen Variante der API-Calls lediglich knapp 58 Prozent der Gastronomiekunden gefunden, so konnte in den weiteren Iterationen durch die Optimierungsschritte und die Konsolidierung mehrerer externer Dienste die Trefferquote auf über 92 Prozent gesteigert werden. Bei den restlichen 8 Prozent handelte es sich um fehlerhafte Stammdaten, die durch einen manuellen Prozess abgeglichen werden mussten.

Abbildung-2-Verbesserung-der-Trefferquote-©MT-AG

Abbildung 2: Verbesserung der Trefferquote

Das hieß: Nach der Datenanreicherung wussten wir bei 92 Prozent der Gastronomiekunden, welcher Branche und welchem Küchenstil sie angehören. Wir konnten die Kunden zum Beispiel in „positiv bewertete italienische Restaurants“ und „internationale Hotels“ unterteilen. Wir wussten auch, wie viele Bewertungen der Kunde bekommen hatte, und dementsprechend, wie bekannt er war. Zudem konnten wir nun das Preisniveau des Kunden bestimmen. All diese Informationen waren nach der Datenanreicherung in der eigenen Datenlandschaft vorhanden und standen den jeweiligen Fachabteilungen zur Verfügung. Zuvor waren diese Informationen unbekannt! Des Weiteren waren die Kundendaten nun mit ausreichend Merkmalen angereichert, um eine Kundensegmentierung und weitere Analysen durchführen zu können.

Kundensegmentierung

Ziel einer Kundensegmentierung ist es, relevante Gruppen – für den entsprechenden Fachbereich und Verwendungszweck – innerhalb seiner Kunden zu identifizieren, um anschließend Rückschlüsse auf Business Actions ziehen zu können. Dafür werden die Kunden anhand bestimmter Eigenschaften und Merkmale aufgeteilt. Kunden einer Gruppe sind sich in diesen Eigenschaften besonders ähnlich. Der Prozess der Kundensegmentierung besteht aus drei Teilschritten und ist in Abbildung 3 dargestellt.

Abbildung-3-Prozess-der-Kundensegmentierung-©-MT-AG

Abbildung 3: Prozess der Kundensegmentierung

Auswahl der relevanten Informationen

Zuerst wählten wir Merkmale über die Kunden aus, die bei der Segmentierung berücksichtigt werden sollten. Hierbei war besonders auf den Verwendungszweck der Kundengruppen zu achten. Für das Ziel, die Vertriebs- und Marketingaktionen beim Lebensmittelgroßhändler zu optimieren, waren verschiedene Informationen notwendig. Zum einen sammelten wir Umsatzkennzahlen und Bestellinformationen aus dem internen Datenbestand. Zum anderen verwendeten wir die zuvor angereicherten Informationen über Küchenstil, Online-Bewertungen und Preiskategorie. Aus den 300 abgeleiteten Merkmalen der genannten Kategorien identifizierten wir 30 Merkmale zur Modellerstellung (siehe Abbildung 4). Denn eine größere Anzahl von Merkmalen verbessert nicht unbedingt das Ergebnis der Kundensegmentierung. Qualitativ hochwertige und aussagekräftige Merkmale sind wichtiger als die Quantität der Informationen! Merkmale, die fachlich nicht zum Ziel der Kundensegmentierung beitragen, „verwirren“ den Algorithmus eher und verfälschen das Ergebnis [1].

Abbildung-4-Auswahl-der-relevanten-Merkmale-©MT-AG

Abbildung 4: Auswahl der relevanten Merkmale

Erstellen von Segmenten mit Machine-Learning-Algorithmen

Im zweiten Schritt führten wir mithilfe von maschinellem Lernen die eigentliche Segmentierung der Kunden durch. Dafür verwendeten wir sogenannte Clustering-Algorithmen. Diese können die Kunden anhand der zuvor ausgewählten Merkmale trennen und in Cluster beziehungsweise Gruppen aufteilen (siehe Abbildung 5). Sie berechnen die Ähnlichkeit der Kunden mithilfe des Abstands der einzelnen Datenpunkte. Sowohl in diesem als auch in anderen Projekten haben wir sehr gute Erfahrungen mit den Algorithmen K-Means [2] und DBSCAN [3] gemacht.

Kundenbedürfnisse identifizieren – Teil 1:

Zustand und Herausforderung »

Kundenbedürfnisse identifizieren – Teil 2:

Datenanreicherung mit externen Dienstleistern »

Quellen:

[1] Géron, Aurélion (2019), Hands-On Machine Learning with Scikit-Learn, Keras

& Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems (S. 26 f.), O‘Reilly Media, Inc., Sebastopol, Canada

[2] https://scikit-learn.org/stable/modules/clustering.html#k-means (Stand: 05.01.2021)

[3] https://scikit-learn.org/stable/modules/clustering.html#dbscan (Stand: 05.01.2021)

[4] https://www.scikit-yb.org/en/latest/api/cluster/elbow.html (Stand: 05.01.2021)

[5] https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html (Stand: 05.01.2021)

[6] https://scikit-learn.org/stable/auto_examples/ensemble/plot_forest_importances. html (Stand: 07.01.2021)

[7] Sebastian Raschka, http://rasbt.github. io/mlxtend/user_guide/frequent_patterns/fpgrowth/#frequent-itemsets-via-the-fp-growth-algorithm (Stand 07.01.2021)

 

Schauen Sie sich auch unser Video zum Thema Data Science an:

Thumbnail_Kundensegmentierung_im_Großhandel

Jetzt teilen auf:

Jetzt kommentieren