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”)
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.
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))
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
Nach dem die Daten aus Power Query an Power BI übergeben wurden, können Sie hier weiter aufbereitet und den Fachanwendern präsentiert werden.
Die Beispiel Warenkorbanalyse kann hier heruntergeladen werden.
Quellen:
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
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