Fast Algorithm for Mining Association Rules Künstliche Intelligenz II WS09/10 Oliver Müller Leibniz Universität Hannover Inhalt Problemstellung Formalisierung Algorithmus Apriori Algorithmus AprioriTid Algorithmus AprioriHybrid Ergebnisse Zusammenfassung 2 Fast Algorithm for Mining Association Rules Problemstellung Verkaufs-Transaktionen aufzeichnen 3 Mittels Barcode-Technologie Großer Datenbestand Einzelner Datensatz bestehend aus Datum, gekaufte Artikel Fast Algorithm for Mining Association Rules Problemstellung Verkaufs-Transaktionen aufzeichnen Mittels Barcode-Technologie Großer Datenbestand Einzelner Datensatz bestehend aus Datum, gekaufte Artikel Interesse von Firmen meist für Marketing-Zwecke 4 Kundenspezifische Vermarktungs-Strategien (Cross-Marketing, Attached Mailing, Katalog Design, etc.) Fast Algorithm for Mining Association Rules Problemstellung Verkaufs-Transaktionen aufzeichnen Mittels Barcode-Technologie Großer Datenbestand Einzelner Datensatz bestehend aus Datum, gekaufte Artikel Interesse von Firmen meist für Marketing-Zwecke Kundenspezifische Vermarktungs-Strategien (Cross-Marketing, Attached Mailing, Katalog Design, etc.) Ziel: Mining von Assoziations-Regeln im Datenbestand 5 Fast Algorithm for Mining Association Rules Problemstellung Verkaufs-Transaktionen aufzeichnen Mittels Barcode-Technologie Großer Datenbestand Einzelner Datensatz bestehend aus Datum, gekaufte Artikel Interesse von Firmen meist für Marketing-Zwecke Kundenspezifische Vermarktungs-Strategien (Cross-Marketing, Attached Mailing, Katalog Design, etc.) Ziel: Mining von Assoziations-Regeln im Datenbestand Beispiel: 6 Reifen ^ Zubehör Kfz-Dienstleistung Zu 98% Sicherheit (Confidence) Fast Algorithm for Mining Association Rules Notation Menge von Items ( -Itemset) 7 Fast Algorithm for Mining Association Rules Notation Transaktion 8 Menge von Items ( -Itemset) ist eine Menge von Items mit Fast Algorithm for Mining Association Rules Notation Menge von Items ( -Itemset) Transaktion ist eine Menge von Items mit Menge von Transaktionen: TID = Unique Identifier für jede Transaktion 9 Lexikographische Sortierung Fast Algorithm for Mining Association Rules Notation Menge von Items ( -Itemset) Transaktion ist eine Menge von Items mit Menge von Transaktionen: TID = Unique Identifier für jede Transaktion Lexikographische Sortierung Assoziations-Regel: wenn gilt: 10 und Fast Algorithm for Mining Association Rules Notation Menge von Items ( -Itemset) Transaktion ist eine Menge von Items mit Menge von Transaktionen: TID = Unique Identifier für jede Transaktion Lexikographische Sortierung Assoziations-Regel: wenn gilt: und Confidence : aller Transaktionen in enthalten, enthalten auch 11 Fast Algorithm for Mining Association Rules die Notation Menge von Items ( -Itemset) Transaktion ist eine Menge von Items mit Menge von Transaktionen: TID = Unique Identifier für jede Transaktion Lexikographische Sortierung Assoziations-Regel: wenn gilt: und Confidence : aller Transaktionen in die enthalten, enthalten auch Support : aller Transaktionen in enthalten 12 Fast Algorithm for Mining Association Rules Formale Definition des Problems Generierung einer Liste aller Assoziations-Regeln mit und 13 Fast Algorithm for Mining Association Rules Formale Definition des Problems Generierung einer Liste aller Assoziations-Regeln mit und Achtung: Probabilistische Eigenschaft der Assoziations-Regeln beachten: nicht unbedingt eingehalten nicht unbedingt eingehalten 14 Fast Algorithm for Mining Association Rules Andere Algorithmen AIS SETM Knowledge Discovery Klassifikations Regeln Kausale Regeln Function fitting KID3 15 Fast Algorithm for Mining Association Rules Ablauf 1. 16 Finden von Itemsets mit Support Diese werden groß genannt, alle anderen klein Fast Algorithm for Mining Association Rules Ablauf 1. 2. 17 Finden von Itemsets mit Support Diese werden groß genannt, alle anderen klein Nutze große Itemsets zur Generierung der Regeln: Fast Algorithm for Mining Association Rules Ablauf Finden von Itemsets mit Support Diese werden groß genannt, alle anderen klein Nutze große Itemsets zur Generierung der Regeln: 1. 2. 18 Sei ein großes Itemset Für jedes erzeuge Regel Fast Algorithm for Mining Association Rules , wenn Finden großer Itemsets Mehrere Durchläufe von 19 Fast Algorithm for Mining Association Rules Finden großer Itemsets Mehrere Durchläufe von 1. Durchlauf: 20 Zähle Support von einzelnen Items Fast Algorithm for Mining Association Rules Finden großer Itemsets Mehrere Durchläufe von 1. Durchlauf: Zähle Support von einzelnen Items k-ter Durchlauf: 21 Erzeuge neue Kandidaten aus großen Itemsets von vorherigen Durchläufen Verwerfe Kandidaten mit zu geringem Support Fast Algorithm for Mining Association Rules Finden großer Itemsets Mehrere Durchläufe von 1. Durchlauf: Zähle Support von einzelnen Items k-ter Durchlauf: Erzeuge neue Kandidaten aus großen Itemsets von vorherigen Durchläufen Verwerfe Kandidaten mit zu geringem Support Terminiere, wenn keine großen Itemsets mehr gefunden werden 22 Fast Algorithm for Mining Association Rules Idee Intuition: 23 Jedes Subset eines großen Itemsets ist groß Fast Algorithm for Mining Association Rules Idee Intuition: Jedes Subset eines großen Itemsets ist groß Finde Kandidaten für große k-Itemsets durch Kombination großer (k-1)-Itemsets 24 Fast Algorithm for Mining Association Rules Idee Intuition: Jedes Subset eines großen Itemsets ist groß Finde Kandidaten für große k-Itemsets durch Kombination großer (k-1)-Itemsets Entferne alle Kandidaten, welche kleine Subsets enthalten 25 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items 26 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items k-ter Schritt 27 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items k-ter Schritt: Erzeuge neue Kandidaten 28 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items k-ter Schritt: Erzeuge neue Kandidaten Durchsuche alle Transaktionen Alle Kandidaten aus t Zähle den Support hoch 29 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items k-ter Schritt: Erzeuge neue Kandidaten Durchsuche alle Transaktionen Alle Kandidaten aus t Zähle den Support hoch Übernehme nur die mit genügend Support 30 Fast Algorithm for Mining Association Rules Algorithmus Apriori 1. Schritt: Zähle Support 1-Items k-ter Schritt: Erzeuge neue Kandidaten Durchsuche alle Transaktionen Alle Kandidaten aus t Zähle den Support hoch Übernehme nur die mit genügend Support 31 Fast Algorithm for Mining Association Rules Algorithmus Apriori – Apriori-Gen Besteht aus 2 Schritten 1. Schritt: Join (Kombination von zwei -Itemsets) und sind in den ersten Einträgen identisch 32 Fast Algorithm for Mining Association Rules Algorithmus Apriori – Apriori-Gen Besteht aus 2 Schritten 1. Schritt: Join (Kombination von zwei 2. Schritt: Prune -Itemsets) und sind in den ersten Einträgen identisch Entferne alle Kandidaten, welche kleine Subsets enthalten 33 Fast Algorithm for Mining Association Rules Algorithmus Apriori – Apriori-Gen Beispiel: Join: Prune: , da 34 nicht in Fast Algorithm for Mining Association Rules Algorithmus Apriori - Subset Benutzt Hash-Tree Hash-Wert in i-ter Ebene berechnet sich durch iten Item aus c Laufzeit O(max(k, size(t))) Wichtig: Items lexikographisch sortiert. 35 Fast Algorithm for Mining Association Rules Algorithmus Apriori - Problem In jeder Iteration wird die gesamte Datenbank durchsucht! 36 Fast Algorithm for Mining Association Rules Modifikation - Algorithmus AprioriTid Durchsucht die Datenbank nur einmal 37 Fast Algorithm for Mining Association Rules Modifikation - Algorithmus AprioriTid Durchsucht die Datenbank nur einmal Kandidaten werden auch hier mit apriori-gen erzeugt. Zur Berechnung des Supports wird dann jedoch die Menge statt benutzt 38 Fast Algorithm for Mining Association Rules Modifikation - Algorithmus AprioriTid Durchsucht die Datenbank nur einmal Kandidaten werden auch hier mit apriori-gen erzeugt. Zur Berechnung des Supports wird dann jedoch die Menge statt benutzt Einträge von haben die Form <TID, > Idee: Speichere zu jeder Transaktion eine Liste aller potentiell großen -Itemsets entspricht dabei der Datenbank 39 Fast Algorithm for Mining Association Rules Algorithmus AprioriTid - Beispiel Minimum support = 2 TID 40 Items TID Set-of-Itemsets Itemset Support 100 134 100 { {1}, {3}, {4} } {1} 2 200 235 200 { {2}, {3}, {5} } {2} 3 300 1235 300 { {1}, {2}, {3}, {5} } {3} 3 400 25 400 { {2}, {5} } {5} 3 Itemset Support TID Set-of-Itemsets Itemset Support Itemset {1 2} Support 1 TID 100 { {1Set-of-Itemsets 3} } Itemset {1 3} Support 2 {2 5} {133} 12 200 { {2 3 3},5}{2} 5}, {3 5} } {2 5} {233} 2 {1 5} 1 300 {2 5} 3 {2 3} 2 { {2 {1 3 2},5}{1} 3}, {1 5}, {2 3}, {2 5}, {3 5} } {3 5} 2 {2 5} 3 {3 5} 2 400 { {2 5} } Fast Algorithm for Mining Association Rules Ergebnisse Vergleich von Apriori und AprioriTid mit den Algorithmen 41 AIS (Kandidaten für große Itemsets on-the-fly erzeugen) SETM (on-the-fly, SQL optimiert) Fast Algorithm for Mining Association Rules Ergebnisse Vergleich von Apriori und AprioriTid mit den Algorithmen 42 AIS (Kandidaten für große Itemsets on-the-fly erzeugen) SETM (on-the-fly, SQL optimiert) AIS und SETM erzeugen sehr viel mehr Kandidaten Fast Algorithm for Mining Association Rules Ergebnisse Vergleich von Apriori und AprioriTid mit den Algorithmen AIS (Kandidaten für große Itemsets on-the-fly erzeugen) SETM (on-the-fly, SQL optimiert) AIS und SETM erzeugen sehr viel mehr Kandidaten Wie vergleichen? 43 Mit synthetisch generierten Daten (welches Modell?) (Reale Daten) Fast Algorithm for Mining Association Rules Synthetische Daten Gutes Modell für reales Käufer-Verhalten: Tendenz zum Kauf mehrerer Artikel gleichzeitig. Transaktionen haben eine typische Größe (Parameter |T| ) Große Itemsets haben eine typische Größe (Parameter |I|) Große Itemsets haben oft gemeinsame Items Nicht alle Artikel eines großen Itemsets werden immer zusammen gekauft Weitere Parameter: 44 |D| N ... Anzahl der Transaktionen Anzahl Items (hier: N =1000) Fast Algorithm for Mining Association Rules Ergebnisse SETM Zeiten für T>5 sind sehr viel höher 45 Fast Algorithm for Mining Association Rules Ergebnisse 46 Fast Algorithm for Mining Association Rules Ergebnisse Apriori ist bei großen Problemen besser als AprioriTid 47 Fast Algorithm for Mining Association Rules Vergleich Apriori – AprioriTid AprioriTid benutzt 48 Passt statt . in den Speicher, so ist AprioriTid schneller als Apriori. Fast Algorithm for Mining Association Rules Vergleich Apriori – AprioriTid AprioriTid benutzt 49 statt . Passt in den Speicher, so ist AprioriTid schneller als Apriori. Wenn zu groß wird, passt es nicht in den Speicher und die Ladezeiten erhöhen sich sehr (Schreiben/Lesen auf Festplatte). Fast Algorithm for Mining Association Rules AprioriHybrid Verwende Apriori in den ersten Iterationen Wenn als klein genug angenommen wird, wechsle zu AprioriTid 50 Fast Algorithm for Mining Association Rules AprioriHybrid Verwende Apriori in den ersten Iterationen Wenn als klein genug angenommen wird, wechsle zu AprioriTid Verwende dazu eine Heuristik: 51 Fast Algorithm for Mining Association Rules AprioriHybrid Verwende Apriori in den ersten Iterationen Wenn als klein genug angenommen wird, wechsle zu AprioriTid Verwende dazu eine Heuristik: Umschaltung verbraucht Zeit Ist meistens immer noch besser 52 Fast Algorithm for Mining Association Rules AprioriHybrid – Ergebnisse AprioriHybrid ist meist noch besser als Apriori und AprioriTid 53 Fast Algorithm for Mining Association Rules Zusammenfassung Assoziationsregeln sind ein wichtiges Werkzeug zur Analyse von Datenbeständen 54 Fast Algorithm for Mining Association Rules Zusammenfassung Assoziationsregeln sind ein wichtiges Werkzeug zur Analyse von Datenbeständen Es wurden Algorithmen vorgestellt, welche schneller und Ressourcensparender arbeiten als bisherige Ansätze 55 Fast Algorithm for Mining Association Rules Zusammenfassung Assoziationsregeln sind ein wichtiges Werkzeug zur Analyse von Datenbeständen Es wurden Algorithmen vorgestellt, welche schneller und Ressourcensparender arbeiten als bisherige Ansätze AprioriHybrid schlägt AIS und SETM dabei um Größenordnungen bei großen Datenbeständen 56 Fast Algorithm for Mining Association Rules Zusammenfassung Assoziationsregeln sind ein wichtiges Werkzeug zur Analyse von Datenbeständen Es wurden Algorithmen vorgestellt, welche schneller und Ressourcensparender arbeiten als bisherige Ansätze AprioriHybrid schlägt AIS und SETM dabei um Größenordnungen bei großen Datenbeständen Aber: 57 Was ist mit hierarchisch sortierten Daten? Beispiel: is-a-Beziehung (Spülmaschine ist ein Küchengerät …) Regeln nicht immer sinnvoll (Rückgang #Piraten Zunahme globale Erwärmung) Fast Algorithm for Mining Association Rules 58 Fast Algorithm for Mining Association Rules