4. Generieren von Assoziationsregeln Grundbegriffe 4. Generieren von Assoziationsregeln 4. Assoziationsregeln Support • Assoziationsregeln beschreiben gewisse Zusammenhänge und Regelmäßigkeiten zwischen verschiedenen Dingen, z.B. den Artikeln eines Warenhauses. • Die Zusammenhänge sind allgemeiner Art und nicht notwendigerweise kausal bedingt. • Man unterstellt aber, daß implizite strukturelle Abhängigkeiten vorliegen. Diese möchte man erkennen. • Typischer Anwendungsbereich: Verkaufsdatenanalyse Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln Grundbegriffe 141 Grundbegriffe Definition 4.2. Es sei X ⊆ I eine Itemmenge. Der Support von X ist der Anteil aller Transaktionen aus D, die X enthalten: support(X) := |{t ∈ D | X ⊆ t}| |D| Beispiel 4.1. Bei der Verkaufsdatenanalyse eines Supermarktes sind Items die Artikel aus dem Sortiment. Die Transaktionen entsprechen den Einkäufen von Kunden. Die Datenbasis besteht aus den Einkäufen der Kunden eines bestimmten Zeitraums. Der Support der Itemmenge {M ilch} ist dann der Anteil der Einkäufe, bei denen u.a. Milch gekauft wurde. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 143 Grundbegriffe Itemmenge, Transaktion und Datenbasis Assoziationsregel Definition 4.1. Die Dinge, deren Beziehungen zueinander analysiert werden sollen, werden als Items bezeichnet. Es sei I = {i1, . . . , in} eine endliche Menge von Items. Definition 4.3. Gegeben seien zwei disjunkte Itemmengen X, Y , also X, Y ⊆ I und X ∩ Y = ∅. Eine Teilmenge X ⊆ I heißt Itemmenge. Eine k-Itemmenge ist eine Itemmenge mit k Elementen. Eine Transaktion t ⊆ I ist eine Itemmenge. Eine Assoziationsregel hat die Form X → Y . Eine Transaktion erfüllt die Regel X → Y gdw. X ∪ Y ⊆ t gilt, d.h. t enthält alle Items der Assoziationsregel. Der Support von X → Y ist der Support der Itemmenge X ∪ Y Die Datenbasis D = {d1, . . . , dm} ist eine Menge von Transaktionen. support(X → Y ) := support(X ∪ Y ) Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 142 Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 144 4. Generieren von Assoziationsregeln Grundbegriffe Konfidenz = • Support und Konfidenz sind Parameter mit denen die Relevanz einer Regel beurteilt wird. |{t ∈ D|X ∪ Y ⊆ t}| |{t ∈ D|X ⊆ t} • Beide Maßzahlen sollten möglichst groß sein. support(X → Y ) support(X) • Finde alle Assoziationsregeln, die in der betrachteten Datenbasis Bemerkung 4.1. Die Konfidenz ist eine bedingte Häufigkeit bzw. bedingte Wahrscheinlichkeit. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 145 Grundbegriffe – einen Support ≥ minsupp und – eine Konfidenz ≥ minconf haben. Die Werte minsupp und minconf sind dabei benutzerdefiniert. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 147 Apriori-Algorithmus Das Problem wird in zwei Teilprobleme zerlegt: Beispiel 4.2. Transaktion 1 2 3 4 5 6 Apriori-Algorithmus Suche nach Assoziationsregeln Definition 4.4. Gegeben sei die Assoziationsregel X → Y . Die Konfidenz von X → Y conf idence(X → Y ) ist definiert durch conf idence(X → Y ) := 4. Generieren von Assoziationsregeln Items Brot, Kaffee, Milch, Kuchen Kaffee, Milch, Kuchen Brot, Butter, Kaffee, Milch Milch, Kuchen Brot, Kuchen Brot • Finde alle Itemmengen, deren Support ≥ minsupp ist. Diese Itemmengen heißen häufige Itemmengen (frequent itemsets). • Finde in jeder häufigen Itemmenge I alle Assoziationsregeln I0 → I \ I0 mit I 0 ⊂ I und mit Konfidenz ≥ minconf . support({Kaffee, Milch}) = 0.5 = 50% Die wesentliche Schwierigkeit besteht in der Lösung des ersten Teilproblems. support({Kaffee, Kuchen, Milch}) = 0.33 = 33% support({Milch, Kaffee} → {Kuchen}) = 0.33 = 33% Enthält die Menge I insgesamt n Items, so sind prinzipiell 2n Itemmengen auf ihren Support hin zu untersuchen. conf idence({Milch, Kaffee} → {Kuchen}) = 0.67 = 67% Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 146 Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 148 4. Generieren von Assoziationsregeln Apriori-Algorithmus Apriori-Algorithmus Algorithmus 4.1. [Apriori-Algorithmus] Apriori-Algorithmus Der sogenannte Apriori-Algorithmus nutzt folgendes bei der Suche nach häufigen Itemmengen aus: Für zwei Itemmengen I1, I2 mit I1 ⊆ I2 gilt support(I2) ≤ support(I1) Somit folgt: • Alle Teilmengen einer häufigen Itemmenge sind ebenfalls häufige Itemmengen. • Alle Obermengen einer nicht häufigen Itemmenge sind ebenfalls nicht häufig. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 4. Generieren von Assoziationsregeln 149 Apriori-Algorithmus L1 := { häufige 1-Itemmengen } k := 2 while Lk−1 6= ∅ do Ck := AprioriGen(Lk−1) for all Transaktionen t ∈ D do Ct := {c ∈ Ck |c ⊆ t} for all Kandidaten c ∈ Ct do c.count := c.count + 1 end end Lk := {c ∈ Ck |c.count ≥ |D| · minsupp} k := k + 1 end return ∪k Lk Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 151 Apriori-Algorithmus Grober Ablauf des Apriori-Algorithmus: Algorithmus 4.2. [AprioriGen] • Der Apriori-Algorithmus bestimmt zunächst die einelementigen häufigen Itemmengen. Ck := ∅ for all p, q ∈ Lk−1 mit p 6= q do if |p ∩ q| = k − 2 and p = {e1, . . . , ek−2 , ep} and q = {e1, . . . , ek−2 , eq } then Ck := Ck ∪ {e1, . . . , ek−2 , ep, eq } end for all c ∈ Ck do for all (k − 1)-Teilmengen s von c do if s ∈ / Lk−1 then Ck := Ck \ {c} end end return Ck • In jedem weiteren Durchlauf werden die Obermengen mit k + 1 Elementen von häufigen k-Itemmengen darauf untersucht, ob sie ebenfalls häufig sind. • Die Obermengen der häufigen k-Itemmengen werden mit dem Algorithmus AprioriGen ermittelt. • Werden keine häufigen k + 1-Itemmengen mehr gefunden, bricht der Algorithmus ab. ☞ Voraussetzung: Itemmengen sind lexikographisch geordnet. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 150 Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 152 4. Generieren von Assoziationsregeln Apriori-Algorithmus Beispiel 4.3. minsupp = 40% Transaktion 1 2 3 4 4. Generieren von Assoziationsregeln Datenstrukturen f ¨ur die Teilmengenoperation Unterstützung der Teilmengenoperation Items Itemm. ACD {A} −→ {B} BCE ABCE {C} {D} BE {E} C1 Support 50% 75% 75% 25% 75% Itemm. {A} {B} {C} {E} L1 Support 50% 75% 75% 75% • Im Apriori- und im AprioriGen-Algorithmus werden sehr häufig Teilmengen überprüft. • Um diese Tests effizient durchführen zu können, werden die Kandidatenmengen in einem Hash-Baum verwaltet. • Struktur eines Hash-Baums: – Innerer Knoten: Hashtabelle bezüglich Hashfunktion h; Buckets der Hashtabelle verweisen auf die Sohnknoten. – Blattknoten: enthält Liste von Itemmengen Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 153 4. Generieren von Assoziationsregeln Itemm. {A,B} {A,C} {A,E} {B,C} {B,E} {C,E} C2 Support Itemm. {A,B} {A,C} −→ {A,E} {B,C} {B,E} {C,E} C2 Support 25% 50% 25% 50% 75% 50% Support −→ Itemm. {B,C,E} Itemm. {A,C} {B,C} {B,E} {C,E} L2 Support 50% 50% 75% 50% Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 Datenstrukturen f ¨ur die Teilmengenoperation – Innerer Knoten auf Ebene d: Anwendung der Hashfunktion h auf id – Das Ergebnis von h legt den Zweig fest, der weiter verfolgt wird. – Blatt: Suche in der Liste der Itemmengen • Einfügen einer Itemmenge X = {i1, . . . , ik }: L3 Support 50% 4. Generieren von Assoziationsregeln 155 • Suchen einer Itemmenge X = {i1, . . . , ik }: C3 C3 Itemm. {B,C,E} Apriori-Algorithmus Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 Itemm. {B,C,E} Support 50% 154 – Zunächst erfolgt eine Suche für X bis zu einem Blatt, in das die Itemmenge eingefügt werden soll. – Ist in dem Blatt Platz für eine weitere Itemmenge vorhanden, dann wird X dort eingefügt. – Kann das Blatt keine Itemmenge mehr aufnehmen, dann wird es zu einem inneren Knoten und die Einträge werden gemäß h auf neue Blätter verteilt. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 156 4. Generieren von Assoziationsregeln Datenstrukturen f ¨ur die Teilmengenoperation Kapazität der Blätter = 3 {3,6,7} {3,4,15} 0 1 2 0 1 2 0 1 2 {3,5,7} {7,9,12} {1,4,11} {7,8,9} {2,3,8} {3,5,11} {1,6,11} {1,7,9} {1,8,11} {5,6,7} {3,7,11} {3,4,11} {3,4,8} Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln Datenstrukturen f ¨ur die Teilmengenoperation t = {1, 3, 7, 9, 12} h(K) = K mod 3 0 1 2 0 1 2 4. Generieren von Assoziationsregeln 0 1 2 0 1 2 {2,5,6} {3,6,7} {2,5,7} {5,8,11} {2,4,6} {2,4,7} {2,7,9} {5,7,10} Datenstrukturen f ¨ur die Teilmengenoperation 0 1 2 0 1 2 {3,5,7} {7,9,12} {1,4,11} {7,8,9} {2,3,8} {3,5,11} {1,6,11} {1,7,9} {1,8,11} {5,6,7} 0 1 2 {2,5,6} {2,5,7} {5,8,11} {3,4,15} 157 0 1 2 h(K) = K mod 3 0 1 2 {3,7,11} {2,4,6} {2,4,7} {3,4,11} {3,4,8} {2,7,9} {5,7,10} Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 159 Ermittlung der Assoziationsregeln Suchen aller Itemmengen X, die von einer Transaktion t = {t1, . . . , tm} erfüllt werden: Bestimmung der Assoziationsregeln • Wurzel: Für jedes ti ∈ t wird h(ti) bestimmt und in den resultierenden Söhnen wird weitergesucht. Nach der Bestimmung der häufigen Itemmengen müssen noch die Assoziationsregeln mit einer Konfidenz ≥ minconf bestimmt werden. Diese werden aus den häufigen Itemmengen generiert. • Innerer Knoten: Hat man den Knoten durch h(ti) erreicht, dann wird h(tj ) für jedes tj mit j > i bestimmt. Gegeben seien Itemmengen X, Y mit Y ⊂ X. Dann gilt: Auf die so resultierenden Söhne wird das Verfahren in gleicher Weise fortgesetzt, bis ein Blatt erreicht wird. • Blatt: Prüfung, welche der in dem Blatt enthaltenen Itemmengen die Transaktion t erfüllen. conf idence((X \ Y ) → Y ) ≥ minconf =⇒ conf idence((X \ Y 0) → Y 0) ≥ minconf für alle Y 0 ⊆ Y Bei der Regelgenerierung nutzt man wiederum die Umkehrung aus. Man beginnt mit einer möglichst kleinen Menge Y 0 und schließt alle Obermengen von Y 0 aus, falls gilt: conf idence((X \ Y 0) → Y 0) < minconf Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 158 Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 160 4. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln 4. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln • Man erzeugt aus einer häufigen Itemmenge X zunächst alle Assoziationsregeln mit einelementiger Konklusion (rechter Seite). Wir setzen: minsupp = 0.4, minconf = 0.7 • Alle Regeln mit Konfidenz ≥ minconf werden ausgegeben. C2 Tafel ✎. • Sei Hm die Menge der Konklusionen häufiger Itemmengen mit m Elementen. Wir setzen Hm+1 := AprioriGen(Hm). L2 = {{B, C}, {B, D}, {B, J}, {B, L}, {C, J}, {C, L}} • Für alle Konklusionen hm+1 ∈ Hm+1 überprüft man nun, ob L1 = {{A}, {B}, {C}, {D}, {E}, {J}, {L}} C3 vor Teilmengencheck: {{B, C, D}, {B, C, J}, {B, C, L}, {B, D, J}, {B, D, L}, {B, J, L}, {C, J, L}} C3 nach Teilmengencheck: {{B, C, J}, {B, C, L}} conf idence((X \ hm+1) → hm+1) ≥ minconf L3 = {{B, C, J}, {B, C, L}} gilt. Falls ja, dann wird die Regel ausgegeben, ansonsten wird hm+1 aus Hm+1 entfernt. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 161 4. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Beispiel 4.4. [Warenkorbanalyse] Artikel Seife Shampoo Haarspülung Duschgel Zahnpasta Zahnbürste Haarfärbung Haargel Deodorant Parfüm Kosmetikartikel t1 x x t2 t3 t4 x x x x x x x x x x x x x t5 x t6 x x x x x t7 x x Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 x x t8 x x x x x x t9 x x x x t10 x x x x x x x Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln 163 Ermittlung der Assoziationsregeln Für die Generierung der Assoziationsregeln beginnen wir mit L2. Wir erhalten: B → C, C → B, D → B, L → B, L → C Warenkorbanalyse ID A B C D E F G H J K L C4 = L 4 = ∅ x x x x x support 0.4 0.8 0.6 0.6 0.4 0.2 0.3 0.1 0.6 0.2 0.5 162 Aus {B, C, J} aus L3 ergeben sich die Regeln (Konfidenz in Klammern): BC → J[0.67], BJ → C[1.00], CJ → B[1.00] und H1 = {{B}, {C}} H2 = AprioriGen(H1) = {{B, C}}, aber J → BC[0.67] erfüllt nicht das Konfidenzkriterium. Aus {B, C, L} ergeben sich die Regeln: BC → L[0.67], BL → C[0.8], CL → B[1.00] Mit H2 = {{B, C}} ergibt sich L → BC[0.8] Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 164 4. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Shampoo Haarspülung Duschgel Kosmetik Kosmetik Shampoo, Deodorant Haarspülung, Deodorant Shampoo, Kosmetik Haarspülung, Kosmetik Kosmetik Regel → → → → → → → → → → Haarspülung Shampoo Shampoo Shampoo Haarspülung Haarspülung Shampoo Haarspülung Shampoo Shampoo, Haarspülung Support 0.6 0.6 0.5 0.5 0.4 0.4 0.4 0.4 0.4 0.4 Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 4. Generieren von Assoziationsregeln Konfidenz 0.75 1.00 0.83 1.00 0.80 1.00 1.00 0.80 1.00 0.80 165 Zusammenfassung Zusammenfassung • Entscheidungsbäume – – – – Aufbau einer Klassifikationshierarchie für eine Trainingsmenge top-down, rekursives Verfahren Wesentlich ist die Attributauswahl ID3-Algorithmus: Attributauswahl auf Basis der Entropie • Assoziationsregeln – – – – Wesentlich: Berechnung häufiger Itemmengen Apriori-Algorithmus zur Berechnung häufiger Itemmengen Unterstützung des Apriori-Algorithmus durch Hash-Trees Aus den häufigen Itemmengen werden unter Einsatz von AprioriGen die Assoziationsregeln generiert. Wissensbasierte Systeme II — FH Bonn-Rhein-Sieg, WS 03/04 166