Warenkorbanalyse mit R und Power BI

Nachdem wir im letzten Beitrag die Verwendung von R in Power BI betrachtet haben, möchte ich nun mit Ihnen eine Warenkorbanalyse mit R und Power BI durchführen.

Ziel der Warenkorbanalyse ist es, Regeln in den Daten zu finden, die beschreiben, welche Produkte oder Produktkategorien gemeinsam oder nicht gemeinsam gekauft werden.

Beispiel: Wenn ein Kunde eine Zahnbürste kauft, kauft er auch Zahncreme.
Formal: {Zahnbürste} -> {Zahncreme}

Werden Regeln gefunden, können diese Artikel zum Beispiel im Markt oder der Werbung gemeinsam platziert werden.

Hierfür sollen mit R in den Daten Assoziationsregeln gefunden werden. Es werden also Regeln gesucht und an den Daten geprüft, die das Kaufverhalten der Kunden beschrieben.

Für diese Regeln lassen sich statistische Maßzahlen berechnen, die die Güte und Bedeutung der Regel beschreiben. Die wichtigsten Maßzahlen sind Support, Confidence und Lift.

Support: relative Häufigkeit der Beispiele, in denen die Regel anwendbar ist. Wie oft also die in der Regel enthaltenen Produkte gemeinsam in einer Transaktion vorkommen. In den Beispiel oben: Wie oft kommen Zahnbürste und Zahncreme in einer Transaktion gemeinsam vor?

Confidence (Konfidenz): relative Häufigkeit der Beispiele, in denen die Regel richtig ist. In den Beispiel oben: Wie oft ist in einer Transaktion Zahncreme enthalten, wenn auch eine Zahnbürste enthalten ist?

Lift: Der Lift gibt an, wie hoch der Confidence-Wert für die Regel den Erwartungswert übertrift, er zeigt also die generelle Bedeutung einer Regel.

Für die Warenkorbanalyse (Assoziationsanalyse) benötigen wir das R Paket arules, was wir über die R Console nachinstallieren.

install.packages(“arules”)

R Packages Installation

Für die Analyse verwenden wir ein Beispiel Dataset in dem 10% aller Kunden Zahnbürsten und Zahncreme kaufen, 10 % aller Kunden nur Zahnbürsten kaufen, 30% aller Kunden nur Zahnpasta kaufen und die restlichen 50% Sonstiges.
Das Dataset verfügt über eine Rechnungsnummer- , eine Zeilennummer- und eine Artikel-Spalte.

Power Query Beispiel Dataset

Auf dieses Dataset wird über Transformieren -> R-Skript ausführen, das folgende R-Skript angewendet. Dieses erstellt aus den Spalten Rechnungsnummer und Artikel Transaktionen, die mit dem APRIORI-Algorithmus analysiert werden. Hier müssen die Regeln mindestens 1% Support und 20% Confidence aufweisen. Das Ergebnis wird als Dataframe an Power Query zurückgegeben.

library(methods)
library(arules)

transactions <- as(split(dataset[,”Artikel”], dataset[,”Rechnungsnummer”]), “transactions”)

rules <- apriori(transactions, parameter = list(support = 0.01, confidence = 0.2), control = list(verbose = FALSE))

rules_df <- data.frame( lhs = labels( lhs(rules) ), rhs = labels( rhs(rules) ), quality(rules))

R-Skript Transformation

Das Ergebnis in Power Query beinhaltet jetzt folgende Spalten:

lhs (Left-Hand-Side) Artikel, die der Kunde bereits im Warenkorb hat

rhs (Right-Hand-Side) Artikel, die Kunden mit gleichen Artikel im Warenkorb zusätzlich gekauft haben

Die statistischen Maßzahlen support, confidence und lift.

count Häufigkeit der Regel

Power Query Ergebnis Warenkorbanalyse

Nach dem die Daten aus Power Query an Power BI übergeben wurden, können Sie hier weiter aufbereitet und den Fachanwendern präsentiert werden.

Power BIErgebnis Warenkorbanalyse

Die Beispiel Warenkorbanalyse kann hier heruntergeladen werden.

Quellen:

Veröffentlicht von

Marcus Wegener

Marcus Wegener

Marcus Wegener ist Anwendungsentwickler für Business Intelligence und erstellt Lösungen, mit denen sich große Datenmengen schnell analysieren lassen. Kunden nutzen seine Lösungen, um die Vergangenheit zu analysieren, die Gegenwart zu steuern und die Zukunft zu planen, um damit mehr Erfolg zu generieren. Dabei ist seine einzigartige Kombination aus Wissen und Auffassungsgabe ein Garant für ihren Erfolg.

2 Gedanken zu „Warenkorbanalyse mit R und Power BI“

  1. Zahnbürsten und Zahnpasta klingt im ersten Moment so, dass das oft zusammen gekauft wird. Tatsächlich ist es aber fraglich, ob das in der Realität auch so ist. Persönlich wird Zahnpasta gekauft, wenn Sie leer ist. Eine neue Zahnbürste, dann wenn Sie aussieht wie der Hintern eines Stachelschweins :).

    Besser ist es ohne Regeln in das Spiel zu gehen und die Daten sprechen zu lassen.

    https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/

    Für Clusteranalysen und weiter Deep Learning Ansätze nutze ich Python (kann auch in PBI integriert werden) und RapidMiner.

    Falls du jemals mit Tensorflow arbeiten möchtest, schau mal dieses Tutorial an:
    https://cloud.google.com/blog/products/gcp/learn-tensorflow-and-deep-learning-without-a-phd

    1. Hi Julian,
      danke für das Feedback.
      Das Beispiel mit der Zahnbürste habe ich vom Wikipedia Beitrag übernommen, es soll ja leicht verständlich bleiben und hat keinen Anspruch auf Realitätsnähe. 🙂
      Natürlich ist eine “richtige” Warenkorbanalyse eine Sammlung von Methoden, wie es auch im verlinkten Bericht “Warenkorbanalyse in R” von Daniela Keller gezeigt wird.
      https://data-science-blog.com/blog/2016/10/08/warenkorbanalyse-in-r/
      Zu der Python Integration in Power BI soll in den nächsten Tagen auch noch Beiträge folgen.
      Als Einstieg immer oberflächlich, bei Interesse werde ich das Thema vertiefen.
      Beste Grüße
      Marcus

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.