5. Generieren von Assoziationsregeln Grundbegriffe 5. Assoziationsregeln 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 Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 213
5. Generieren von Assoziationsregeln Grundbegriffe Itemmenge, Transaktion und Datenbasis Definition 5.1. Die Dinge, deren Beziehungen zueinander analysiert werden sollen, werden als Items bezeichnet. Es sei I = {i 1,...,i n } eine endliche Menge von Items. Eine Teilmenge X I heißt Itemmenge. Eine k-itemmenge ist eine Itemmenge mit k Elementen. Eine Transaktion t I ist eine Itemmenge. Die Datenbasis D = {d 1,...,d m } ist eine Menge von Transaktionen. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 214
5. Generieren von Assoziationsregeln Grundbegriffe Support Definition 5.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 5.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 {Milch} ist dann der Anteil der Einkäufe, bei denen u.a. Milch gekauft wurde. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 215
5. Generieren von Assoziationsregeln Grundbegriffe Assoziationsregel Definition 5.3. Gegeben seien zwei disjunkte Itemmengen X, Y, also X,Y I und X Y =. 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 support(x Y) := support(x Y) Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 216
5. Generieren von Assoziationsregeln Grundbegriffe Konfidenz Definition 5.4. Gegeben sei die Assoziationsregel X Y. Die Konfidenz von X Y confidence(x Y) ist definiert durch confidence(x Y) := = {t D X Y t} {t D X t} support(x Y) support(x) Bemerkung 5.1. Die Konfidenz ist eine bedingte relative Häufigkeit bzw. bedingte Wahrscheinlichkeit. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 217
5. Generieren von Assoziationsregeln Grundbegriffe Beispiel 5.2. Transaktion Items 1 Brot, Kaffee, Milch, Kuchen 2 Kaffee, Milch, Kuchen 3 Brot, Butter, Kaffee, Milch 4 Milch, Kuchen 5 Brot, Kuchen 6 Brot support({kaffee, Milch}) = 0.5 = 50% support({kaffee, Kuchen, Milch}) = 0.33 = 33% support({milch, Kaffee} {Kuchen}) = 0.33 = 33% confidence({milch, Kaffee} {Kuchen}) = 0.67 = 67% Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 218
5. Generieren von Assoziationsregeln Apriori-Algorithmus Suche nach Assoziationsregeln Support und Konfidenz sind Parameter mit denen die Relevanz einer Regel beurteilt wird. Beide Maßzahlen sollten möglichst groß sein. Finde alle Assoziationsregeln, die in der betrachteten Datenbasis einen Support minsupp und eine Konfidenz minconf haben. Die Werte minsupp und minconf sind dabei benutzerdefiniert. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 219
5. Generieren von Assoziationsregeln Apriori-Algorithmus Das Problem wird in zwei Teilprobleme zerlegt: 1. Finde alle Itemmengen, deren Support minsupp ist. Diese Itemmengen heißen häufige Itemmengen (frequent itemsets). 2. Finde in jeder häufigen Itemmenge I alle Assoziationsregeln I I \ I mit I I und mit Konfidenz minconf. Die wesentliche Schwierigkeit besteht in der Lösung des ersten Teilproblems. Enthält die Menge I insgesamt n Items, so sind prinzipiell 2 n Itemmengen auf ihren Support hin zu untersuchen. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 220
5. Generieren von Assoziationsregeln Apriori-Algorithmus Apriori-Algorithmus Der sogenannte Apriori-Algorithmus nutzt folgendes bei der Suche nach häufigen Itemmengen aus: Für zwei Itemmengen I 1, I 2 mit I 1 I 2 gilt Somit folgt: support(i 2 ) support(i 1 ) Alle Teilmengen einer häufigen Itemmenge sind ebenfalls häufige Itemmengen. Alle Obermengen einer nicht häufigen Itemmenge sind ebenfalls nicht häufig. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 221
5. Generieren von Assoziationsregeln Apriori-Algorithmus Grober Ablauf des Apriori-Algorithmus: Der Apriori-Algorithmus bestimmt zunächst die einelementigen häufigen Itemmengen. 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. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 222
5. Generieren von Assoziationsregeln Apriori-Algorithmus Algorithmus 5.1. [Apriori-Algorithmus] L 1 := { häufige 1-Itemmengen } k := 2 while L k 1 do C k := AprioriGen(L k 1 ) for all Transaktionen t D do C t := {c C k c t} for all Kandidaten c C t do c.count := c.count + 1 end end L k := {c C k c.count D minsupp} k := k + 1 end return k L k Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 223
5. Generieren von Assoziationsregeln Apriori-Algorithmus Algorithmus 5.2. [AprioriGen] C k := for all p,q L k 1 mit p q do if p q = k 2 and p = {e 1,...,e k 2, e p } and q = {e 1,...,e k 2,e q } then C k := C k {e 1,...,e k 2, e p,e q } end for all c C k do for all (k 1)-Teilmengen s von c do if s / L k 1 then C k := C k \ {c} end end return C k Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 224
5. Generieren von Assoziationsregeln Apriori-Algorithmus Beispiel 5.3. minsupp = 40% Transaktion Items 1 A C D 2 B C E 3 A B C E 4 B E C 1 Itemm. Support {A} 50% {B} 75% {C} 75% {D} 25% {E} 75% L 1 Itemm. Support {A} 50% {B} 75% {C} 75% {E} 75% Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 225
5. Generieren von Assoziationsregeln Apriori-Algorithmus Itemm. {A,B} {A,C} {A,E} {B,C} {B,E} {C,E} C 2 Support C 2 Itemm. Support {A,B} 25% {A,C} 50% {A,E} 25% {B,C} 50% {B,E} 75% {C,E} 50% L 2 Itemm. Support {A,C} 50% {B,C} 50% {B,E} 75% {C,E} 50% Itemm. {B,C,E} C 3 Support C 3 Itemm. Support {B,C,E} 50% L 3 Itemm. Support {B,C,E} 50% Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 226
5. Generieren von Assoziationsregeln Datenstrukturen für die Teilmengenoperation Unterstützung der Teilmengenoperation 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 Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 227
5. Generieren von Assoziationsregeln Datenstrukturen für die Teilmengenoperation Suchen einer Itemmenge X = {i 1,...,i k }: Innerer Knoten auf Ebene d: Anwendung der Hashfunktion h auf i d Das Ergebnis von h legt den Zweig fest, der weiter verfolgt wird. Blatt: Suche in der Liste der Itemmengen Einfügen einer Itemmenge X = {i 1,...,i k }: 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. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 228
5. Generieren von Assoziationsregeln Datenstrukturen für die Teilmengenoperation Kapazität der Blätter = 3 0 1 2 h(k) = K mod 3 0 1 2 0 1 2 0 1 2 {3,6,7} 0 1 2 {3,5,7} {7,9,12} {1,4,11} {7,8,9} {2,3,8} 0 1 2 {3,5,11} {1,6,11} {1,7,9} {1,8,11} {5,6,7} {2,5,6} {2,5,7} {5,8,11} {3,4,15} {3,7,11} {3,4,11} {3,4,8} {2,4,6} {2,4,7} {2,7,9} {5,7,10} Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 229
5. Generieren von Assoziationsregeln Datenstrukturen für die Teilmengenoperation Suchen aller Itemmengen X, die von einer Transaktion t = {t 1,...,t m } erfüllt werden: Wurzel: Für jedes t i t wird h(t i ) bestimmt und in den resultierenden Söhnen wird weitergesucht. Innerer Knoten: Hat man den Knoten durch h(t i ) erreicht, dann wird h(t j ) für jedes t j mit j > i bestimmt. 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. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 230
5. Generieren von Assoziationsregeln Datenstrukturen für die Teilmengenoperation t = {1, 3, 7, 9, 12} 0 1 2 h(k) = K mod 3 0 1 2 0 1 2 0 1 2 {3,6,7} 0 1 2 {3,5,7} {7,9,12} {1,4,11} {7,8,9} {2,3,8} 0 1 2 {2,5,6} {3,5,11} {1,6,11} {1,7,9} {1,8,11} {5,6,7} {2,5,7} {5,8,11} {3,4,15} {3,7,11} {3,4,11} {3,4,8} {2,4,6} {2,4,7} {2,7,9} {5,7,10} Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 231
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Bestimmung der Assoziationsregeln 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. Gegeben seien Itemmengen X, Y mit Y X. Dann gilt: confidence((x \ Y) Y) minconf = confidence((x \ Y ) Y ) minconf für alle Y Y Bei der Regelgenerierung nutzt man wiederum die Umkehrung aus. Man beginnt mit einer möglichst kleinen Menge Y und schließt alle Obermengen von Y aus, falls gilt: confidence((x \ Y ) Y ) < minconf Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 232
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Man erzeugt aus einer häufigen Itemmenge X zunächst alle Assoziationsregeln mit einelementiger Konklusion (rechter Seite). Alle Regeln mit Konfidenz minconf werden ausgegeben. Sei H m die Menge der Konklusionen häufiger Itemmengen mit m Elementen. Wir setzen H m+1 := AprioriGen(H m ). Für alle Konklusionen h m+1 H m+1 überprüft man nun, ob confidence((x \ h m+1 ) h m+1 ) minconf gilt. Falls ja, dann wird die Regel ausgegeben, ansonsten wird h m+1 aus H m+1 entfernt. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 233
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Warenkorbanalyse Beispiel 5.4. [Warenkorbanalyse] ID Artikel t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10 support A Seife x x x x 0.4 B Shampoo x x x x x x x x 0.8 C Haarspülung x x x x x x 0.6 D Duschgel x x x x x x 0.6 E Zahnpasta x x x x 0.4 F Zahnbürste x x 0.2 G Haarfärbung x x x 0.3 H Haargel x 0.1 J Deodorant x x x x x x 0.6 K Parfüm x x 0.2 L Kosmetikartikel x x x x x 0.5 Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 234
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Wir setzen: minsupp = 0.4,minconf = 0.7 L 1 = {{A}, {B},{C}, {D},{E}, {J}, {L}} C 2 Tafel. L 2 = {{B, C},{B, D},{B,J}, {B, L}, {C,J}, {C, L}} C 3 vor Teilmengencheck: {{B, C,D},{B, C,J}, {B, C,L}, {B, D,J}, {B,D,L}, {B, J,L}, {C, J, L}} C 3 nach Teilmengencheck: {{B,C, J}, {B,C, L}} L 3 = {{B, C,J}, {B, C,L}} C 4 = L 4 = Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 235
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Für die Generierung der Assoziationsregeln beginnen wir mit L 2. Wir erhalten: B C,C B,D B,L B, L C Aus {B, C,J} aus L 3 ergeben sich die Regeln (Konfidenz in Klammern): BC J[0.67],BJ C[1.00],CJ B[1.00] und H 1 = {{B}, {C}} H 2 = AprioriGen(H 1 ) = {{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 H 2 = {{B, C}} ergibt sich L BC[0.8] Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 236
5. Generieren von Assoziationsregeln Ermittlung der Assoziationsregeln Regel Support Konfidenz Shampoo Haarspülung 0.6 0.75 Haarspülung Shampoo 0.6 1.00 Duschgel Shampoo 0.5 0.83 Kosmetik Shampoo 0.5 1.00 Kosmetik Haarspülung 0.4 0.80 Shampoo, Deodorant Haarspülung 0.4 1.00 Haarspülung, Deodorant Shampoo 0.4 1.00 Shampoo, Kosmetik Haarspülung 0.4 0.80 Haarspülung, Kosmetik Shampoo 0.4 1.00 Kosmetik Shampoo, Haarspülung 0.4 0.80 Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 237
5. Generieren von Assoziationsregeln 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 Apriori- Gen die Assoziationsregeln generiert. Maschinelles Lernen und unsicheres Wissen FH Bonn-Rhein-Sieg, WS 08/09 238