in Gastbeitrag vom Team Wahre Logistik
Lukas Felzmann, Alexander Opris, Felix Mayer
Datum der Originalveröffentlichung Jan 20. 2023; 6 min read
In diesem Blog werden wir nun eine solche Warenkorb Analyse an einem Beispiel Datensatz durchführen.
Disclaimer
Unsere Daten stammen aus dem Blogeintrag "△ Logistics Case Studies: der Lieferschein" von Prof. Dr.-Ing. Martin Wölker und sind unter Creative Commons (CC BY-NC-SA) lizenziert. Die Daten spiegeln Umsätze, Materialstämme und Kundenstämme eines fiktiven mittelständischen Unternehmens namens Schrauben Karl GmbH wider. (Anm. Es handelt sich um anonymisiert Echtdaten aus einem meiner Projekte.)
Das Basket Shop Layout
Um in R eine Warenkorb Analvse durchführen zu können, müssen die Daten in die Form eines sogenannten „basket shop layout" (Anm: siehe Fußnote dazu*) überführt werden. Das ist ein Datenformat, dass speziell für solch eine Warenkorb Analyse entworfen worden ist. Im folgenden betrachten wir einen Ausschnitt der Daten, wie sie im basket shop layout aussehen.
#cast into a glimpse objectgTemp <- glimpse(lieferscheine df %>% select(lieferschein,materialnummer))
Das resultierende Ergebnis sieht dann aus wie die oben gezeigte Tabelle. Zusätzliche können wir diese noch als CSV-Datei exportieren, was uns im nächsten Schritt auch nützlich sein wird und wir auch im nachhinein die Daten auch außerhalb von R repräsentieren könnten.
Die Apriori Funktion
Nun, da wir die Daten in der passenden Form haben, schauen wir wie genau wir eine Warenkorb Analyse durchführen können mit Hilfe einer Korrelation Analyse. Hierzu wird die sogenannte Apriori Funktion genutzt.Diese leitet uns Regeln zu unseren Daten ab, basierend auf vorliegende Korrelation und berechnet uns damit eine konkrete Wahrscheinlichkeit eines Kaufs von Produkt A, wenn auch B gekauft wird. Diese kann zum Beispiel wie folgt aussehen:
{263012040,276016000} {276012000} o. 7542662%
Die Apriori Funktion erfordert jedoch im speziellen ein Transaktion Objekt. Mit der Vorarbeit durch das basket shop layout ist der notwendige Typ-cast nun trivial und kann allein durch den Import der CSV-Datei erfolgen.
Die Apriori Funktion ist nun einfach anzuwenden:
- Confidence: Beschreibt die Wahrscheinlichkeit, dass A gekauft wird, wenn auch B gekauft wird. Es werden nur Regeln gesucht, die mindestens so zuversichtlich sind wie in conf angegeben (Hier 50%).
- Support: Beschreibt die Frequenz der Korrelation in dem Datensatz und wirdauf ein Minimum von 0.001 festgelegt.
- Maximal Länge: Beschreibt die maximale Größe der Menge an Materialien,die jeweils für A und B betrachtet werden, da auch Korrelationen in der Form { A1, A2, ... A maxlen } -> { Bl, B2, ... B maxlen }möglich sind.
Interpretation der Ergebnisse
Wir können nun die Ergebnisse der Apriori Funktion einerseits textuell als auch visuell Beschreibung. Eine textuelle Beschreibung allein mit ...
ist jedoch nicht empfehlenswert, da sie schlicht durch die Fülle an Daten unübersichtlich ist. Stattdessen empfiehlt es sich die Daten in einem Scatter Plot darstellen zu lassen.
Zu sehen ist, dass insbesondere eine große Menge an Regeln mit einer hohen Confidence auch einen hohen Lift haben. Dadurch können wir mit ziemlicher Sicherheit auf B schließen, aber ebenso ausschließen, dass B für ein andere Menge von Materialnummern in A gekauft wird. Damit sind uns zuverlässige Vorhersagen möglich. Zugleich fällt aber auch auf, dass der Support mit wenigen Ausnahmen gleichbleibend gering ist. Dies lässt uns darauf schließen, dass der Datensatz zwar
starke Korrelationen besitzt, diese aber nur selten im Datensatz vorzufinden sind.
Für eine exemplarisches Beispiel von mehreren Regeln wählen wir eine beliebige Materialnummer und lassen uns die zehn Regeln mit der höchsten Confidence anzeigen. Im folgenden finden sich die zehn Regel mit der höchsten Confidence als ein exemplarisches Beispiel. Dabei betrachten wir aber nur dass das Produkt auf dass wir schließen wollen die Materialnummer "276012000".
Der notwendige Code sieht aus wie folgt:
Unsere Schlussfolgerung:
Wir können zwar Muster im Kaufverhalten der Kunden erkennen, erkennen aber ebenso am Support, dass ihr Kaufverhalten äußerst heterogen zueinander ist und es zwischen ihnen allgemein nur wenig Ähnlichkeiten gibt. Gründe hierfür können schlicht die Interessen der Kunden oder die Vielfalt an unterschiedlichen Materialien sein.
*Ergänzung zum Basket Shop Layout (11.Mai2024)
Mit 50.000 Artikeln kann die Warenkorbanalyse tatsächlich eine Herausforderung sein. Der Apriori-Algorithmus "Basket Shop Layout" kann bei großen Datensätzen ineffizient sein. Es gibt jedoch andere Algorithmen wie FP-Growth oder Eclat, die effizienter sein können.
Es ist wichtig zu beachten, dass die Warenkorbanalyse ein exploratives Werkzeug ist. Es kann Muster und Assoziationen in Ihren Daten aufdecken, aber interpretieren und entscheiden muss der Anwender, wie die Erkenntnisse zur Geschäftsstrategiepassen. Es kann auch hilfreich sein, die Ergebnisse der Warenkorbanalyse mit anderen Datenquellen oder Geschäftsinformationen zu kombinieren, um ein vollständigeres Bild zu erhalten.
Transparenzhinweis
Blog: , Seite:
Version: 1.3 Mai 2023, Kontakt: E-Mail Martin Wölker
Pirmasens, Germany, 2018-2024,
ausgelesen am: , Licence
CC BY-NC-SA
Kommentare
Kommentar veröffentlichen