Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Matthias Gläfke Data Mining - Seminar im Sommersemester 2007 2. Vortrag Pincer-Search 5. Juni 2007.

Ähnliche Präsentationen


Präsentation zum Thema: "Matthias Gläfke Data Mining - Seminar im Sommersemester 2007 2. Vortrag Pincer-Search 5. Juni 2007."—  Präsentation transkript:

1 Matthias Gläfke Data Mining - Seminar im Sommersemester 2007 2. Vortrag Pincer-Search 5. Juni 2007

2 Überblick Grundlagen Maximum Frequent Set (MFS) Bekannte Ansätze Maximum Frequent Candidate Set (MFCS) Weg zum Pincer-Search-Algorithmus Experimente mit Beispieldatenbanken

3 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Definitionen I I = {i 1, …, i n } : Menge aller Items („alle Waren eines Supermarkts“) Hier: I = {1, …, n} Itemset X: Kombination von Items („Auswahl von Waren“) Transaktion T: Menge von Items („Warenkorb eines Kunden“) Datenbank D: Menge von Transaktionen („Einkäufe in einem Zeitraum“)

4 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Frequent Itemset Ein Itemset X heißt frequent itemset, wenn sup(X)≥minsup ist. Dabei ist minsup  [0,1] der vom Benutzer festgelegte minimal support. Sonst: infrequent itemset Wichtige Überlegung: (E1) Ist X infrequent und X  Y, so ist auch Y infrequent (E2) Ist X frequent und Y  X, so ist auch Y frequent

5 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Maximum Frequent Set Wichtiges Ziel des Data-Mining: frequent itemsets finden (Assoziationsregeln,…) Wegen (E2): Jedes frequent itemset ist entweder Teilmenge eines anderen frequent itemset oder hat keine Obermenge, die ein frequent itemset ist X heißt maximal frequent itemset, falls X ein frequent itemset ist und jede Obermenge von X kein frequent itemset ist maximum frequent set (MFS): Menge aller maximal frequent itemsets

6 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel I D = { {1,2,3,4,5}, {1,3}, {1,2}, {1,2,3,4} } minsup = 0,5 frequent itemsets: {1}, {2}, {3}, {4}, {1,2}, {1,3}, {1,4}, {2,3}, {2,4}, {3,4}, {1,2,3}, {1,2,4}, {1,3,4}, {2,3,4}, {1,2,3,4} MFS = { {1,2,3,4} } {1,2,3,4,5} {1,2,3,4} {1,2}{1,3}{1,4}{2,3} {1}{2}{3}{4} schwarz: frequent itemsets blau: maximal frequent itemsets rot: infrequent itemsets {1,2,3}{1,2,4}{1,3,4} {5} {2,3,4} {2,4}{3,4}

7 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel II D = { {1,2,3,5}, {1,5}, {1,2}, {1,2,3} } minsup = 0,5 frequent itemsets: {1}, {2}, {3}, {5}, {1,2}, {1,3}, {1,5}, {2,3}, {1,2,3} MFS = { {1,2,3}, {1,5} } {1,2,3,4,5} {1,2,3} {1,2}{1,3}{2,3}{1,5} {1}{2}{3} {4}{5} schwarz: frequent itemsets blau: maximal frequent itemsets rot: infrequent itemsets

8 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Bedeutung des MFS Anschaulich (wie gesehen): MFS bildet Grenze zwischen frequent und infrequent itemsets Klar (wegen (E2)): Mit MFS hat man alle frequent itemsets (Vereinigung der Potenzmengen der Elemente) Um (implizit) alle frequent itemsets zu erhalten, suchen wir das MFS!

9 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Bottom-Up: verwendet (E1), jedes frequent itemset wird explizit untersucht, z.B. Apriori Top-Down: verwendet (E2), jedes infrequent itemset wird explizit untersucht Bekannte Ansätze {1,2,3,4} {1,2,3}{1,2,4}{1,3,4}{2,3,4} {1,2}{1,3}{2,3}{1,4}{2,4}{3,4} {1}{2}{3}{4} {5} {1,2,3,4,5} {1,2,3,4}{1,2,3,5}{1,2,4,5}{1,3,4,5}{2,3,4,5} {1,2,5}{1,3,5}{1,4,5}{2,3,5}{2,4,5}{3,4,5} {1,5}{2,5}{3,5}{4,5} {5}

10 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Probleme Diese Ansätze haben nur dann eine gute Performance, wenn die Elemente des MFS sehr kurz oder sehr lang sind (Berechnen des Supports ist teuer!) Idee: (E1) und (E2) verwenden! {1,2,3,4,5} {1,2,3,4} {1,3,4,5}{1,2,3,5}{1,2,4,5}{2,3,4,5} {1,2,3}{1,2,4}{1,3,4}{2,3,4} {1,2,5}{1,3,5}{1,4,5}{2,3,5}{2,4,5}{3,4,5} {1,2}{1,3}{1,4}{2,3}{2,4}{3,4} {1,5} {2,5}{3,5}{4,5} {1}{2}{3}{4} {5} schwarz: frequent itemsets blau: maximal frequent itemsets rot: infrequent itemsets grün: nicht untersuchte itemsets

11 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Neue Menge: MFCS Ziel: Performance verbessern (Anzahl der Kandidaten) durch Koordination der beiden Ansätze Dazu wird eine neue Menge eingeführt: maximum frequent candidate set Enthält die längsten itemsets, die noch nicht als infrequent identifiziert wurden Formaler: –Potenzmengen sämtlicher Elemente enthalten keine infrequent itemsets –Alle frequent itemsets sind in der Vereinigung der Potenzmengen sämtlicher Elemente enthalten –Kleinstmöglich (minimale Kardinalität)

12 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Was macht das MFCS? In jedem Durchgang wird der support der Bottom-up- Kandidaten und der Elemente des MFCS berechnet –Falls Element des MFCS frequent  alle Untermengen sind frequent  Element kommt ins MFS –Falls Bottom-up-Kandidat infrequent  MFCS aktualisieren Effiziente Koordidation von Bottom-up- und Top-down- Suche!

13 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel Zu Beginn setzt man MFCS = { {1, …, n} } 1. Durchgang: Setze MFCS = { {1, …, m} } {1}{2}{m}{m+1}{n} {1,..., m} {1,..., m, m+1,..., n}

14 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Aktualisierung des MFCS Situation: Ein k-itemset Y wird als infrequent identifiziert Erinnerung (Def.): Dann ist Y  X für ein X  MFCS Um die Eigenschaften zu erhalten, muss MFCS aktualisiert werden! Idee: Sei M = {X  MFCS | Y  X, Y infrequent}. –Ist X  M, so streiche X aus MFCS und generiere |Y|=k neue Itemsets X i ’ = X\{y i } (i = 1,..., k) –Füge die X i ’ in MFCS ein, die dort keine Obermenge haben

15 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel zu MFCS-gen Sei MFCS = { {1,2,3,4,5,6} } sowie {1,6} und {3,6} die neu entdeckten infrequent itemsets. Betrachte zunächst {1,6}  M = { {1,2,3,4,5,6} } –Setze MFCS = Ø, X’ 1 = {2,3,4,5,6}, X’ 2 = {1,2,3,4,5} –Setze MFCS = { {2,3,4,5,6}, {1,2,3,4,5} } Betrachte nun {3,6}  M = { {2,3,4,5,6} } –Setze MFCS = { {1,2,3,4,5} }, X’ 1 = {2,4,5,6}, X’ 2 = {2,3,4,5} –Setze MFCS = { {1,2,3,4,5}, {2,4,5,6} } (Beachte: {2,3,4,5}  {1,2,3,4,5} !)

16 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Algorithmus MFCS-gen Input: Old MFCS, infrequent set S k found in pass k Output: New MFCS 1: for all itemsets s  S k 2: for all itemsets m  MFCS 3: if s is a subset of m 4: MFCS := MFCS \ m 5: for all items e  itemset s 6: if m\{e} is not a subset of any itemset in the MFCS 7: MFCS := MFCS UNION m\{e} 8: return MFCS

17 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Ein weiteres Problem Betrachte folgendes Beispiel: L 3 = { {1,2,3}, {1,2,4}, {1,2,5}, {1,3,4}, {1,3,5},{1,4,5}, {2,3,4}, {2,3,5}, {2,4,5}, {2,4,6}, {2,5,6}, {3,4,5}, {4,5,6} } Mit der Apriori-Search ist dann C 4 = { {1,2,3,4}, {1,2,3,5}, {1,2,4,5}, {1,3,4,5}, {2,3,4,5}, {2,4,5,6} }

18 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Ein weiteres Problem L 3 = { {1,2,3}, {1,2,4}, {1,2,5}, {1,3,4}, {1,3,5},{1,4,5}, {2,3,4}, {2,3,5}, {2,4,5}, {2,4,6}, {2,5,6}, {3,4,5}, {4,5,6} } Was kann bei Pincer-Search passieren? Sei X = {1,2,3,4,5}  MFCS als frequent bekannt. Dann wird X ins MFS eingefügt, und alle Untermengen von X werden nicht mehr betrachtet  L 3 = { {2,4,6}, {2,5,6}, {4,5,6} } Apriori-join liefert keine neuen Elemente! Aber: Es müsste C 4 = { {2,4,5,6} } gelten! (Erinnerung: C 4 = { {1,2,3,4}, {1,2,3,5}, {1,2,4,5}, {1,3,4,5}, {2,3,4,5}, {2,4,5,6} })

19 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Itemsets wiederherstellen Wie erhält man die evtl. in C k+1 fehlenden Itemsets? Vorüberlegung: Ist X  C k+1, so müssen Teile von X sicherlich aus Itemsets aus L k bestehen. Idee: Die „verloren gegangenen“ k-Itemsets werden wiederhergestellt, aber nur die, die man auch tatsächlich mit Elementen von L k joinen kann, also solche mit dem gleichen k-1-Präfix wie ein Element aus L k

20 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Itemsets wiederherstellen Sei X = {x 1, …, x k, x k+1, …, x l }  MFS, Y = {y 1, …, y k }  L k mit l > k und y 1, …, y k-1  X, y k-1 = x j für ein j Setze Y ’ j+1 = {y 1, …, y k-1, x j+1 } Y ’ j+2 = {y 1, …, y k-1, x j+2 }...... Y ’ l = {y 1, …, y k-1, x l } Diese Y ’ i sind sicherlich frequent! Füge die Y ’ i in L k ein und wende dann Apriori-join an

21 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel (Fortsetzung) L 3 = { {2,4,6}, {2,5,6}, {4,5,6} }, X = {1,2,3,4,5}  MFCS sei als frequent bekannt. Beginne mit Y = {2,4,6} –Dann sind y 1, y 2  X und y 2 = x 4. –Setze dann Y ’ 5 = {2,4,5} Sei nun Y = {2,5,6} –Dann sind y 1, y 2  X und y 2 = x 5. –Es werden keine neuen itemsets generiert Für Y = {4,5,6} erhält man ebenfalls keine neuen itemsets Man erhält L 3 = { {2,4,6}, {2,5,6}, {4,5,6}, {2,4,5} } Durch Apriori-join: C 4 = { {2,4,5,6} }

22 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Algorithmus Recovery Input: C k+1 from Apriori-join procedure, L k, current MFS Output: complete candidate set C k+1 1: for all itemsets l  L k 2: for all itemsets m  MFS 3: if the first k-1 items in l are also in m 4: /* suppose m.item j = l.item k-1 (!!) */ 5: for i from j+1 to |m| 6: C k+1 := C k+1 UNION { {l.item 1, l.item 2, …, l.item k, m.item i } } 7: /* the new elements are {l.item 1, l.item 2, …,l.item k-1, l.item k } 8: join {l.item1, l.item2, …,l.itemk-1, m.item i } */

23 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Weitere Kandidaten streichen Stand: C k+1 wurde durch Apriori-join und Recovery bestimmt Es können noch weitere Kandidaten gestrichen werden: Hat ein Kandidat keine Obermenge im MFCS, so ist er nach Defintion des MFCS sicherlich nicht frequent

24 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Insgesamt ergibt sich damit der Pincer- Search-Algorithmus Algorithmus New prune Input: current MFCS and C k+1 after Apriori-join and recovery procedure Output: final candidate set C k+1 1: for all itemsets c  C k+1 2: if c is not a subset of any itemset in the current MFCS 3: delete c from C k+1

25 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Algorithmus Pincer-Search Input: a database and a user-defined minimum support Output: MFS which contains all maximal frequent itemsets 1: L 0 := Ø; k := 1; C 1 := { {i} | i  {1,2, …, n } } 2: MFCS := { {1,2, …, n} }, MFS := Ø 3: while not C k = Ø 4: read database and count supports for C k and MFCS 5: remove frequent frequent itemsets from MFCS and add them to MFS 6: L k := { frequent itemsets in C k } \ { subsets of MFS } 7: S k := { infrequent itemsets in C k } 8: call the MFCS-gen algorithm if not S k = Ø 9: call the Apriori-join procedure to generate C k+1 10: if any frequent itemset in C k is removed in line 5 11: call recovery procedure to recover candidates to C k+1 12: call new prunce procedure to prune candidates in C k+1 13: k := k+1 14: end-while 15: return MFS

26 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beispiel D = { {1,2,3,4,5}, {1,3}, {1,2}, {1,2,3,4} }, minsup = 0,5 L 0 = Ø, C 1 = {{1},{2},{3},{4},{5}}, MFCS = {{1,2,3,4,5}}, MFS = Ø k=1 –sup({1}) = 1, sup({2}) = 0,75, sup({3}) = 0,75, sup({4}) = 0,5, sup({5}) = 0,25, sup({1,2,3,4,5}) = 0 –L 1 = {{1},{2},{3},{4}}, S 1 = {{5}}  MFCS = {{1,2,3,4}} –C 2 = {{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}} k=2 –sup({1,2}) = 0,75, sup({1,3}) = 0,75, sup({1,4}) = 0,5, sup({2,3}) = 0,5, sup({2,4}) = 0,5, sup({3,4}) = 0,5, sup({1,2,3,4}) = 0,5 –MFCS = Ø, MFS = {{1,2,3,4}} –L 2 = Ø, S 2 = Ø Output: MFS = {{1,2,3,4}} Pincer-Search: 2 Schritte, Bottom-up: 4 Schritte, Top-Down: 5 Schritte

27 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Vorbemerkungen Für die Experimente wird nicht der (Basis-) Algorithmus von oben verwendet Manchmal ist der Unterhalt des MFCS zu teuer (z.B. bei viele infrequent 2-itemsets) Die im Folgenden benutzte angepasste Version von Pincer-Search verzichtet so lange auf das MFCS, bis der Nutzen die Kosten übersteigt!

28 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beobachtung Gibt es einen Zusammenhang zwischen der Anzahl der maximal frequent itemsets und dem minimal support? Klar: Verringert man den minimal support, so vergrößert sich die Gesamtzahl der Kandidaten Beispiel: –D = { {1,2,3,4,5}, {1,3}, {1,2}, {1,2,3,4} } –minsup = 0,5: MFS = {{1,2,3,4}} –minsup = 0,75: MFS = {{1,2},{1,3}}

29 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Beobachtung Es gibt also keine solche „Monotonie“ bei der Anzahl der Elemente des MFS Folgerung: –Für Bottom-Up-Algorithmen vergrößert sich bei verringertem minsup die Rechenzeit, die Suche nach dem MFS dauert länger. –Bei verringertem minsup wird die Länge der Elemente des MFS i.A. größer, werden diese vom MFCS schneller erreicht (von oben). Hier sind Vorteile für Pincer-Search zu erwarten!

30 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Verteilungen Grundsätzlich kann man zwei Verteilungen unterscheiden: scattered: viele kurze maximal frequent itemsets concentrated: wenige lange maximal frequent itemsets Im zweiten Fall sind Vorteile für Pincer-Search zu erwarten!

31 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Scattered distributions I sämtliche Grafiken auf den folgenden Folien wurden übernommen aus: Lin / Kedem: Pincer Search: A new algorithm for Discovering the Maximum Frequent Set, 2002

32 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Scattered distributions II

33 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Scattered distributions III

34 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Concentrated distributions I

35 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Concentrated distributions II

36 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Concentrated distributions III

37 Grundlagen --> MFS --> Bekannte Ansätze --> MFCS --> Pincer-Search --> Experimente Aktienmarkt-Datenbank


Herunterladen ppt "Matthias Gläfke Data Mining - Seminar im Sommersemester 2007 2. Vortrag Pincer-Search 5. Juni 2007."

Ähnliche Präsentationen


Google-Anzeigen