7.5 Übungsaufgabe Assoziationsanalyse

Ziel der Übung

In diesem Übungsabschnitt findet die praktische Anwendung der Assoziationsanalyse mit KNIME statt. In einem einfachen Beispiel wird die Warenkorb-Analyse durchgeführt. Anhand eines umfangreicheren Beispiels haben sie die Möglichkeit, das Gelernte anzuwenden und weiter zu vertiefen. Hierbei stehen Ihnen zwei unterschiedliche Datengrundlagen bereit:

  • Der Datenbestand von MovieLens beschäftigt sich mit der Erstellung von Film-Empfehlungen.
  • Eine umfangreichere Warenkorbanalyse kann mit den realen Daten des US Lebensmittel-Lieferdienstes Instacart durchgeführt werden.

Vorbereitetes Übungsmaterial:
Assoziationsanalyse

Aufgabe 1 — Einfache Warenkorbanalyse

Wir starten mit einer einfachen Assoziationsanalyse von Warengruppen aus einem Supermarkt.

  1. Starten Sie KNIME mit Ihrem Workspace, wechseln in das Verzeichnis ML2/07-Assoziationsanalyse und öffnen den Workflow 01-association-rules
  2. Fügen Sie den Datensatz supermarket.csv aus dem data Verzeichnis Ihrem Workflow hinzu. Die Daten sind im Matrixformat aufbereitet.
  3. Mit dem Knoten Create Bit Vektor erstellen Sie aus den Spalten mit den Items eine Bitvektor-Spalte, die als Input für die Assoziationsanalyse dient.
  4. Mit dem Knoten Association Rule Learner können Sie die häufigen Itemset und die Assoziationsregeln erstellen. Versuchen Sie, die Parameter (minimaler Support, minimale Konfidenz, maximale Größe der Item-Sets) so zu wählen, dass das Ergebnis für Sie “vernünftig” wirkt. Die Liste der Assoziationsregeln kann man z.B. nach dem Lift sortieren und erhält so die “stärksten” Regeln.
  5. Zusätzliche Knoten (Item Set Finder (Borgelt), Association Rule Learner (Borgelt)) mit mehr Einstellungsmöglichkeiten für ItemSet Mining und der Erstellung von Assoziationsregeln kommen aus KNIME-Extension “Item Set Mining”. Testen Sie auch diese Knoten.
  6. Was lernen Sie aus den ermittelten Regeln?

Aufgabe 2 — Filmempfehlungen mit MovieLens

MovieLens ist eine Plattform, in der User Filme bewerten können (Rating mit 1 bis 5 Sternen). Indem man nach Filmen sucht, die ein User gut bewertet, kann man daraus beispielsweise Empfehlungen für User ableiten (“Dir gefällt vielleicht auch…”). MovieLens stellt verschiedene Datensätze zur Verfügung. Wir verwenden für die Übung den kleineren Datensatz. (100000 Ratings von 700 Usern mit 9000 Filmen). Wenn Sie Ihren Workflow entwickelt haben, können Sie auch den vollen Datensatz unter dem obigen Link herunterladen und auswerten (26 Mio. Ratings zu 45000 Filmen)

Um Assoziationsregeln zu erhalten, müssen Sie folgende Schritte durchführen

  • Öffnen Sie den Workflow 02-movielense.
  • Die Daten sind in zwei Dateien enthalten: ratings.csv enthält die Bewertungen der Benutzer. Die Bewertung erfolgt auf einer Skala zwischen und . Die Datei movies.csv enthält Informationen zu den Filmen. Zunächst können Sie nur mit der Tabelle der Ratings arbeiten und später die Titel der Filme hinzu joinen oder gleich zu Beginn mit den Titeln arbeiten.
  • Die Datenvorbereitung enthält zwei Schritte:
    • Wir wählen nur Ratings mit einem Wert größer gleich 4.
    • Die Ratings liegen im Transaktionsformat vor (was bedeutet das?), was für das Item-Set Mining nicht direkt verwendet werden kann. Wir transformieren die Daten in eine Zeile pro User mit allen Ratings als Collection/Liste. Nutzen Sie dazu den GroupBy-Knoten
  • Der Knoten Association Rule Learner kann dann angeschlossen werden. Als mögliche Konfiguration für den Start wählen Sie: , , . Wenn Sie eine Liste mit Regeln haben, können Sie die Parameter verändern und beobachten, was sich am Ergebnis ändert.

Für eine Verwendung der Regeln für Empfehlungen muss man die Tabelle der ermittelten Regeln weiterverarbeiten. Eine Idee könnte sein, dass man nur 2-Item-Mengen betrachtet und dann einfach die Regel zu einem Film mit dem höchsten Score ermittelt. Der Score könnte beispielsweise aus dem Lift und der Confidence gebildet werden. Aufwändigere Recommendation Engines nutzen andere Techniken.

Aufgabe 3 — Instacart.com

Instacart.com ist ein Start-up, das mit lokalen Händlern Lebensmittel nach Hause liefert. Instacart stellt echte Daten aus Bestellungen über kaggle.com zur Verfügung. Ihrem Workspace liegt ein kleinerer Datensatz mit Bestellungen bei, aus denen Sie Assoziationsregeln ableiten können.

  • Vervollständigen Sie den Workflow 03-instacart.
  • Die Warenkörbe (order-products-train.csv) liegen im Transaktionsformat vor, was für das Item Set Mining nicht direkt verwendet werden kann. Wir transformieren die Daten in eine Zeile pro Bestellung (order_id) mit allen Items (product_id) als Collection/Liste. Nutzen Sie dazu den GroupBy-Knoten.
  • Als Konfiguration für den Association Rule Leaner können Sie z.B. wählen , , , .