Einleitung In welchen Situationen ist Apriori teuer, und warum? Kapitel 12: Schnelles Bestimmen der Frequent Itemsets Data Warehousing und Mining 1 Data Warehousing und Mining 2 Schnelles Identifizieren von Frequent Itemsets Direct Hash and Pruning (Park et al.) Hash-Filter, Transaction Trimming, (Toivonen), Optimierung für Itemsets mit vielen Elementen (Bayardo), (Han et al.). Problemstellung ist immer exakt die gleiche, wie im vorigen Kapitel, wir suchen alle maximalen Frequent Itemsets. Weiterentwicklungen von Apriori Hash-Filter Beobachtung: Üblicherweise sehr viele Kandidaten für kleine k, verglichen mit der Zahl der k-itemsets, insbesondere C 2 ist sehr groß. L1 C = 2 2 Idee: Hash-Filter. Beim Zählen des Supports der Elemente von C k werden auch (k+1)-elementige Teilmengen jeder Transaktion betrachtet. Data Warehousing und Mining 3 Data Warehousing und Mining 4
Hash-Filter Beispiel Hash-Filter (Forts.) Transaktionen {1,4}, {1,4}, {1,7}, {1,7}, {2,8}, {2}, {8} 1. minsup=2; Hash-Wert: Alle Werte in der Transaktion aufaddieren und mod 7 berechnen. 2. minsup=3; jetzt: Hash-Funktion ist mod 5. Hash-Filter offensichtlich zu grob gewählt. Hash-Funktion für (k+1)-itemsets, z. B. h k+1. Support Counting für alle Itemsets mit dem gleichen Hash-Wert. Übersteigen des minsups ist notwendig dafür, daß Itemsets frequent sind. Data Warehousing und Mining 5 Data Warehousing und Mining 6 Hash-Filter (Forts.) Notation: h 2 Hash-Funktion, H 2 Hash-Tabelle. Algorithmus: s = a minimum support; set all the buckets of H 2 to zero; /* H 2 is hash table, i.e., array of int whose domain is the range of the hash function */ forall transaction t D do begin insert and count 1-items occurrences in a hash-tree; forall 2-subsets x of t do H 2 [h 2 (x)]++; end L1 ={c c.count s, c is in a leaf node of the hash tree}; c (L1*L1) ist Kandidat H 2 [h 2 (c)] s. Data Warehousing und Mining 7 Transaction Trimming Ziel von Transaction Trimming: Menge der Transaktionen ausdünnen. Angenommen, Transaktion enthält ein Frequent (k+1)-itemset. Jedes Item aus diesem Itemset kommt in mindestens k der k-itemsets aus L k vor. Umgekehrt: Item aus der Transaktion, das nicht in k der k- Itemsets aus L k vorkommt, kann jetzt aus der Transaktion gelöscht werden, ohne das Mining-Resultat zu verfälschen. Außerdem: Diese k k-itemsets müssen alle Teilmengen desselben (k+1)-itemsets sein. Data Warehousing und Mining 8
Transaction Trimming Beispiel L3={{1,2,3}, {1,2,4}, {1,3,4}, {1,4,5}} t={1,2,3,4} Menge mit allen Items Negative Border für Frequent Itemsets Dann: 2 und 3 können aus t gelöscht werden. Unabhängig davon: 4 kann aus t gelöscht werden. t, das jetzt nur noch 1 (bzw. {1,4}) enthält, wird nicht mehr gebraucht. Negative Border Es reicht, die maximalen Frequent Itemsets explizit zu berechnen. Welcher Zusammenhang existiert zwischen minsup und der negative border? z Leere Menge Data Warehousing und Mining 9 Data Warehousing und Mining 10 Fortsetzung Apriori-Algorithmus erfordert Scan über die Datenbank für jedes k, d. h. für jede Itemset-Größe sehr hohe I/O-Kosten. Ziel: Möglichst viele Berechnungen auf einem Sample durchführen, das ins Main Memory paßt. Man kann relativ leicht zeigen, daß Hauptspeicher, d. h. Sample-Größe, groß genug ist, so daß Negative Border meistens stimmt. D. h. ein Datenbank-Scan reicht i. d. R. aus unter der Annahme, daß Kosten des Erzeugens des Samples relativ klein sind. Die Negative Border wird für das Sample ermittelt; Support sowohl ein bißchen größer als auch ein bißchen kleiner wählen. Die Negative Border wird mit einem Scan über die Datenbank überprüft. Data Warehousing und Mining 11 Data Warehousing und Mining 12
Negative Border Apriori-B Menge mit allen Items Negative Border Zwei Beobachtungen: 1. Apriori funktioniert auch auf den Komplementen, 2. Alle Techniken bis jetzt erzeugen explizit alle Frequent Itemsets, nicht nur die maximalen. Ziel: (Weitgehende) Vermeidung der Betrachtung von Frequent Itemsets, die nicht maximal sind. (Betrachtung der grünen Itemsets anstelle der blauen.) Idee: Frequent Itemsets in größeren Schritten durchlaufen. Diese Idee ist insbesondere bei großen Itemsets sinnvoll. Leere Menge z Data Warehousing und Mining 13 Data Warehousing und Mining 14 Finden von Frequent Itemsets ohne Kandidatenerzeugung Bisher vorgestellte Algorithmen sind Varianten von Apriori: Algorithmus besteht aus mehreren Schritten, Erzeugung von Kandidaten vor jedem Schritt, Scannen der Datenbank (oder eines Samples). Generate&Test -Paradigma. Neues Verfahren, das fundamental anders funktioniert: 1. Sortieren der Frequent Items innerhalb einer Transaktion nach Gesamthäufigkeit ( 1½ Scans ), 2. Überführung der sortierten Transaktions- Datenbank in kompakte, baumartige Darstellung (FP-Tree) mit ½ Scan, 3. Extrahieren der Frequent Itemsets aus dem FP-Tree (in Main Memory). Data Warehousing und Mining 15 Data Warehousing und Mining 16
Phase 1 ( Sortieren der Frequent Items ) TID Items Sortierte häufige Items 100 f, a, c, d, g, i, m, p f, c, a, m, p 200 a, b, c, f, l, m, o f, c, a, b, m 300 b, f, h, j, o f, b 400 b, c, k, s, p c, b, p 500 a, f, c, e, l, p, m, n f, c, a, m, p Phase 2 ( Aufbau des ) (1) Diese und die nächste Folie geben über Phase 2, die folgenden Folien enthalten Beispiel. FP-Tree hat zwei Bestandteile: eigentlicher Baum, Header-Tabelle. Häufigste Items in der Sortierung zuerst. Man sieht: Manche Präfixe sind recht häufig, z. B. f, c, a. Data Warehousing und Mining 17 Data Warehousing und Mining 18 Phase 2 ( Aufbau des ) (2) Aufbau des Baum: Jede geordnete Transaktion wird Pfad im Baum, root Knoten enthält Item-ID sowie absolute Häufigkeit entlang des Pfades, Header-Tabelle (wird parallel zum Baum aufgebaut): Von jedem Item geht Zeiger auf verkettete Liste aus, Items wieder nach Häufigkeit sortiert. f:1 c:1 a:1 p:1 Data Warehousing und Mining 19 Data Warehousing und Mining 20
Aufbau des Aufbau des root root f:2 c:2 a:2 D. h. häufige Präfixe, wie z. B. f, c, a, kommen im Baum nur einmal vor. Item f c a b m p Listenkopf f:4 c:3 a:3 m:2 c:1 p:1 p:1 p:2 Data Warehousing und Mining 21 Data Warehousing und Mining 22 Phase 3 ( Extrahieren der Frequent Itemsets aus FP-Tree ) Items werden nacheinander angefaßt, beginnend mit den am wenigsten häufigen (d. h. pro Item ein Schritt), jeder Schritt extrahiert die Frequent Itemsets, die das aktuelle Item enthalten, aber keine Items, die zuvor bereits aktuell waren. Vorgehen wie bei Apriori, aber ohne daß man die Datenbank scannt. Phase 3 Beispiel Sei 3 der minimale Support. Item p: Zwei Pfade: {<(f: 4), (c: 3), (a: 3), (m: 2), (p: 2)>, <(c: 1), (b: 1), (p: 1)>}, Maximale Frequent Patterns: {cp}, Item m: Zwei Pfade: {<(f: 4), (c: 3), (a: 3), (m: 2)>, <(f: 4), (c: 3), (a: 3), (b: 1), (m: 1)>}, Präfix-Pfade : {<(f: 2), (c: 2), (a: 2)>, <(f: 1), (c: 1), (a: 1), (b: 1)>}, Maximale Frequent Patterns: {fcam} Data Warehousing und Mining 23 Data Warehousing und Mining 24
Diskussion Relativ wichtiger Vorschlag, da bis dahin alle Verfahren zur Ermittlung von Frequent Itemsets Modifikationen von Apriori waren. Sowohl Apriori als auch sind verallgemeinerbar für komplexere Strukturen, wie wir sehen werden. Literatur Jong Soo Park, Ming-Syan Chen, Philip S. Yu: An Effective Hash Based Algorithm for Mining Association Rules, Proceedings of the 1995 ACM SIGMOD International Conference on Management of Data, Hannu Toivonen: Large Databases for Association Rules, Proceedings of 22th International Conference on Very Large Data Bases, 1996, Roberto J. Bayardo Jr.: Efficiently Mining Long Patterns from Databases. Proceedings ACM SIGMOD International Conference on Management of Data, 1998, Jiawei Han, Jian Pei, Yiwen Yin: Mining Frequent Patterns without Candidate Generation. Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data. Data Warehousing und Mining 25 Data Warehousing und Mining 26 Prüfungsfragen, beispielhaft In welchen Situationen ist Apriori teuer, und warum? Was kann man gegen diese Schwächen tun? Was sind, und wie lassen sie sich für die Suche nach Frequent Itemsets verwenden? Data Warehousing und Mining 27