5.2 Assoziationsregeln

Ähnliche Dokumente
Musterkennung (pattern mining) findet häufig auftretende Strukturen z.b. in Mengen, Sequenzen oder Graphen

Inhalt. 7.1 Motivation. 7.2 Artikelmengen. 7.3 Assoziationsregeln. 7.4 Sequenzen. Entscheidungsunterstützende Systeme / Kapitel 7: Mustererkennung

Data Mining and Knowledge Discovery zielt darauf ab, verwertbare Erkenntnisse aus Daten zu gewinnen

Assoziationsregeln & Sequenzielle Muster. A. Hinneburg, Web Data Mining MLU Halle-Wittenberg, SS 2007

Kapitel 7: Assoziationsregeln

Kapitel 7: Assoziationsregeln

INTELLIGENTE DATENANALYSE IN MATLAB

Skript zur Vorlesung. Knowledge Discovery in Databases. im Wintersemester 2009/2010. Assoziationsregeln

Häufige Mengen ohne Kandidatengenerierung. FP-Tree: Transaktionen. Konstruktion eines FP-Trees. FP-Tree: Items

Data Mining und Maschinelles Lernen Wintersemester 2015/2016 Lösungsvorschlag für das 13. Übungsblatt

4.3 Hierarchisches Clustering

Übersicht. A. Hinneburg, Web Data Mining MLU Halle-Wittenberg, SS 2007

Häufige Mengen ohne Kandidatengenerierung

Apriori-Algorithmus zur Entdeckung von Assoziationsregeln

Maschinelles Lernen: Symbolische Ansätze

Mining über RDBMSe. von. Christian Widmer. Wie gut lässt sich Mining mit SQL realisieren?

INTELLIGENTE DATENANALYSE IN MATLAB. Unüberwachtes Lernen: Clustern von Attributen

5. Assoziationsregeln

Übersicht. A. Hinneburg, Web Data Mining MLU Halle-Wittenberg, SS 2007

Datenpunkte sollen in Cluster aufgeteilt werden, so dass jeder Datenpunkt in genau einem Cluster enthalten ist

XML & Intelligente Systeme. - XQuery Teil 2 - Datamining auf XML Dokumenten

Kapitel 8: Assoziationsregeln

Kapitel 8: Assoziationsregeln

Algorithms for Pattern Mining AprioriTID. Stefan George, Felix Leupold

Data Mining. Informationssysteme, Sommersemester 2017

Lernen von Assoziationsregeln

Induktion von Assoziationsregeln. Stefan Mandl

Data Mining und Maschinelles Lernen Lösungsvorschlag für das 12. Übungsblatt

Fortgeschrittene Computerintensive Methoden: Assoziationsregeln Steffen Unkel Manuel Eugster, Bettina Grün, Friedrich Leisch, Matthias Schmid

6.6 Vorlesung: Von OLAP zu Mining

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Motivation. Klassifikationsverfahren sagen ein abhängiges nominales Merkmal anhand einem oder mehrerer unabhängiger metrischer Merkmale voraus

Frequent Itemset Mining und FP-Tree

Data Warehousing und Data Mining

6. Algorithmen auf Zeichenketten

Was wissen Sie jetzt?

Mining conjunctive sequential patterns

k-means als Verfahren zur Clusteranalyse basierend auf Repräsentanten bestimmt ein flaches Clustering

Selbstständiges Lernen

Data Mining 5-1. Kapitel 5: Frequent Itemsets. Johannes Zschache Wintersemester 2018/19

4.2 Constraints für Assoziationsregeln

Rückblick. Entscheidungsunterstützende Systeme / Kapitel 4: Klassifikation

Apriori Algortihmus. Endpräsentation. Stefan George, Felix Leupold

Effiziente Algorithmen 2

Entdeckung häufiger Episoden und repräsentativer Episode-Regeln in Ereignis-Sequenzen

Kapitel 11: Association Rules

Datenstrukturen & Algorithmen

Frequent Itemset Mining + Association Rule Mining

Data Mining und Statistik: Gemeinsamkeiten und Unterschiede. Daniel Meschenmoser

Kapitel 11: Association Rules

Algorithmische Bioinformatik 1

2.2 Der Algorithmus von Knuth, Morris und Pratt

Algorithmen und Datenstrukturen

Erkennung Sequenzieller Muster Algorithmen und Anwendungen

Wissensentdeckung in Datenbanken

Implementierung und Analyse ausgewählter Verfahren zum Data Stream Mining

Vorlesung Wissensentdeckung

19. Dynamic Programming I

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Wann sind Codes eindeutig entschlüsselbar?

11. Rekursion. - Wiederholung von Anweisungen: durch Iteration und Rekursion - Anwendungsfälle der Rekursion

QuickSort ist ein Sortieralgorithmus, der auf der Idee des Teile & Beherrsche beruht, und das gegebene Array an Ort und Stelle (in place) sortiert

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

15. Rekursion. Rekursive Funktionen, Korrektheit, Terminierung, Aufrufstapel, Bau eines Taschenrechners, BNF, Parsen

Repetitive Strukturen

Algorithmische Bioinformatik 1

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Inhalt. 8.1 Motivation. 8.2 Optimierung ohne Nebenbedingungen. 8.3 Optimierung unter Nebenbedingungen. 8.4 Lineare Programmierung

Häufige Item-Mengen: die Schlüssel-Idee. Vorlesungsplan. Apriori Algorithmus. Methoden zur Verbessung der Effizienz von Apriori

19. Dynamic Programming I

String - Matching. Kapitel Definition

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

Klausur Kompaktkurs Einführung in die Programmierung Dr. T. Weinzierl & M. Sedlacek 18. April 2012

Algorithmen zur Entdeckung von Assoziationsregeln unter Vermeidung von redundanten und missverständlichen Regeln

Hausdorff-Maß und Hausdorff-Dimension. Jens Krüger

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

Kapitel 12: Induktive

Chapter 1 : þÿ b e t b i e t e t f u ß b a l l c h a p t e r

Einführung in die Informatik 2

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Wir haben in den vorherigen Kapiteln verschiedene Verfahren zur Regression und Klassifikation kennengelernt (z.b. lineare Regression, SVMs)

Vorlesung Wissensentdeckung

Algorithmen auf Sequenzen

Ermittlung von Assoziationsregeln aus großen Datenmengen. Zielsetzung

Maschinelles Lernen in der Bioinformatik

Algorithmen & Komplexität

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 11

Algorithmen & Komplexität

DBS5 Kap. 4. Data Mining

FernUniversität in Hagen. Seminar Data Mining im Sommersemester 2008 Häufige Muster und Assoziationsregeln. Thema Der Apriori-Algorithmus

Vorlesung Wissensentdeckung

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Transkript:

52 Assoziationsregeln Assoziationsregeln erfassen starke usammenhänge zwischen dem Auftreten einer Artikelmenge A und einer Artikelmenge B in Transaktionen A B Nur solche Assoziationsregeln sollen gefunden werden, die häufig genug beobachtet wurden (support) eine hohe Vorhersagekraft haben (confidence) überraschend oder unerwartet sind (lift) 43

Support einer Assoziationsregel Betrachten wir eine Assoziationsregel A B mit Artikelmengen A und B, so ist ihr Support definiert als sup(a B) =sup(a fi B,D) sup({bier} {Cola}) =3 sup({bier, Cola} {Kaese}) =1 D = (1, {Bier, Cola}), (2, {Wurst, Chips, Birnen}), (3, {Bier, Cola}), (4, {Kaese, Bier, Cola}), (6, {Brot, Wurst, Kaese}), (7, {Brot, Wurst, Birnen}), (8, {Birnen, Brot}), 44

Konfidenz einer Assoziationsregel Betrachten wir eine Assoziationsregel A B mit Artikelmengen A und B, so ist ihre Konfidenz (confidence) definiert als conf (A B) = sup(a fi B,D) sup(a, D) conf ({Bier} {Cola}) = 3 3 conf ({Bier, Cola} {Kaese}) = 1 3 D = (1, {Bier, Cola}), (2, {Wurst, Chips, Birnen}), (3, {Bier, Cola}), (4, {Kaese, Bier, Cola}), (6, {Brot, Wurst, Kaese}), (7, {Brot, Wurst, Birnen}), (8, {Birnen, Brot}), 45

Lift einer Assoziationsregel Assoziationsregeln mit hoher Konfidenz können irreführend und nicht unbedingt informativ sein Beispiel: Transaktionsdatenbank enthält 1,000 Transaktionen 500 davon enthalten Chips; 100 enthalten Cola; 45 beides conf ({Cola} {Chips}) =045 dies ist wenig überraschend, da Chips in 50% der Transaktionen vorkommt 46

Lift einer Assoziationsregel Lift einer Assoziationsregel ist definiert als lift(a B) = sup(a fi B) sup(a) sup(b) und misst wie informativ die Assoziationsregel ist 47

Bestimmen von Assoziationsregeln Man möchte nun für eine Transaktionsdatenbank D alle Assoziationsregeln A B bestimmen, so dass gilt sup(a B) Ø minsup, dh man sucht Assoziationsregeln, die häufiger als der Parameter minsup beobachtet wurden conf (A B) Ø minconf, dh nur Assoziationsregeln mit Konfidenz höher als Parameter minconf zu bestimmen Vorgehensweise: 1 Bestimme häufige Artikelmengen C mit sup(c) Ø minsup 2 Leite aus häufigen Artikelmengen Assoziationsregeln ab 48

Ableiten von Assoziationsregeln Assoziationsregeln lassen sich aus den gefundenen häufigen Artikelmengen wie folgt ableiten betrachte jede häufige Artikelmenge X für jede echte Teilmenge X, überprüfe die Konfidenz der Assoziationsregel => (X \ ), dh berechne den Wert sup(x, D) / sup(, D), und behalte die Assoziationsregel, wenn der Wert größer gleich minconf ist Jede so aus einer häufigen Artikelmengen X generierte Assoziationsregel ist ebenfalls häufig, dh es gilt sup( => (X \ )) minsup 49

Ableiten von Assoziationsregeln 1 // Menge gefundener Assoziationsregeln 2 AR = ÿ; 3 4 // Betrachte hä ufige Artikelmengen 5 for (X œ F : X Ø 2) { 6 7 // Betrachte echte Teilmengen 8 for( µ X ) { 9 10 // Bestimme Konfidenz der Regel => ( \ X) 11 c = sup(x, D)/sup(,D); 12 13 // Konfidenz größer gleich minconf? 14 if (c >= minconf ) { 15 AR = AR fi { (X \ ) } 16 } 17 } 18 } 19 20 return AR; 50

Beispiel Ableiten von Assoziationsregeln Die folgende Transaktionsdatenbank sei gegeben (1, {A, B, C}), (2, {B,C}), (3, {A, C}), (4, {A, D}), D = (5, {C, D}), (6, {A, C, D}), (7, {A, C, D}), (8, {A, B, D}), (9, {A, B}), (10, {B,C,E}) es sollen Assoziationsregeln für minsup = 2 und minconf = 06 bestimmt werden 51

Beispiel Ableiten von Assoziationsregeln Folgende häufige Artikelmengen wurden bestimmt F = {A} : 7, {B} : 5, {C} : 7, {D} : 5, {A, B} : 3, {A, C} : 5, {A, D} : 4, {B,C} : 3, {C, D} : 3 {A, C, D} : 2 Daraus lassen sich die folgenden Assoziationsregeln mit Konfidenz größer gleich minconf = 06 ableiten {B} {A} : 3/5 {A} {C} : 5/7 {C} {A} : 5/7 {D} {A} : 4/5 {B} {C} : 3/5 {D} {C} : 3/5 {C, D} {A} : 2/3 52

Assoziationsregeln in Python import pandas as pd from mlxtendpreprocessing import OnehotTransactions from mlxtendfrequent_patterns import apriori # Filmbewertungen einlesen ml1m = pdread_csv('/data/ml-1m/ml-1mcsv', sep=',') # Leere Liste mit Transaktionen transactions = [] users = set(ml1mcolumns) usersremove('title') # Bestimme für jeden Benutzer die Menge seiner bewerteten Filme for user in users: rated = [] for movie in range(0, 3706): if ml1m[user][movie] > 0: ratedappend(ml1m['title'][movie]) transactionsappend(rated) # Transaktionsdatenbank geeignet kodieren oht = OnehotTransactions() oht_ary = ohtfit(transactions)transform(transactions) # Häufige Artikelmengen bestimmen df = pddataframe(oht_ary, columns=ohtcolumns_) frequent_itemsets = apriori(df, min_support=02, use_colnames=true) frequent_itemsets 53

Assoziationsregeln in Python # Assoziationsregeln bestimmen rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=08) rules Vollständiges Jupyter-Notebook unter: http://swlhtwsaarde//2017-vl-ds-kap5-assoziationsanalysehtml http://swlhtwsaarde//2017-vl-ds-kap5-assoziationsanalyseipynb 54

Assoziationsregeln mit Generalisierungen Artikel lassen sich häufig in Kategorien einteilen, beispielsweise Produkte (zb Chips) in Produktkategorien (zb Snacks) Lebensmittel Artikel können in einer Taxonomie eingeordnet sein und es kann mehrere Ebenen allgemeinerer Produktkategorien geben Chips Snacks Flips Assoziationsregeln mit Generalisierungen zb {Cola, Bier} {Snacks} {Thinkpad X1 } {Drucker} 55

Assoziationsregeln mit Generalisierungen Assoziationsregeln mit Generalisierungen lassen sich mit bekannten Verfahren wie A-Priori oder FP-Growth bestimmen, sofern die Transaktionsdatenbank vorab erweitert wird u einem Artikel x i seien cat(x i ) seine Produktkategorien; wir definieren eine erweiterte Transaktionsdatenbank als I D Õ = (t, X Õ ) (t, X) œ D X Õ = X fi J cat(x) xœx 56

Assoziationsregeln mit Generalisierungen Beispiel: {Cola, Flips, Chips} wird zu {Cola, Flips, Chips, Snacks, Drinks, Lebensmittel} Lebensmittel Snacks Drinks Chips Flips Cola 57

53 Sequenzen In vielen Anwendungen spielt die Reihenfolge, in der Elemente (zb Artikel) auftreten, eine Rolle zb Filme in Online-Videothek werden von Kunden geschaut URLs innerhalb einer Website von Besuchern aufgerufen Wörter in natürlichsprachlichen Texten organische Basen (A, T, G, C) in einer DNA ustände (zb Fehler) in einem System Man kann häufig auftretende Sequenzen in solchen Daten identifizieren, um beispielsweise wiederum Assoziationsregeln zu bestimmen 58

Sequenzen Mögliche Anwendungen solcher Assoziationsregeln sind Produktempfehlungen (zb Online-Videothek) Unterstützung des Benutzers bei der Texteingabe (zb auf Smartphone oder in Suchmaschinen) Vorhersage des nächsten ustands eines Systems 59

Alphabet, Sequenz, Teilsequenz Betrachte ein Alphabet Σ von Symbolen (zb eichen) und Σ * bezeichne die Menge aller Folgen über diesem Alphabet es sei s eine Sequenz über dem Alphabet Σ s = n ist die Länge der Sequenz s s[i:j] ist eine Teilsequenz von s s[1:i] ist eine Präfix der Länge i von s s[i:n] ist eine Suffix der Länge (n i + 1) von s Betrachte Alphabet Σ = {a, b, c} und s = <a b b a c>, dann s = 5, s[2:4] = <b b a>, s[1:3] = <a b b> und s[4:n] = <a c> 60

Alphabet, Sequenz, Teilsequenz Sequenz r heißt Teilsequenz von s, r s, wenn es eine Abbildung :[1, r ] æ [1, s ] gibt, so dass gilt 1 Æ i Æ r : r[i] =s[ (i)] 1 Æ i, j Æ r : i<j (i) < (j) Beispiel: r = <a b a c> ist Teilsequenz von s = <a b a a b c> r = <a a b c> ist keine Teilsequenz von s = <a b a a c c> Sequenzdatenbank D Σ * ist eine Menge von Folgen 61

Support Support einer Sequenz r ist definiert als sup(r, D) = {s œ D : r s} Anti-Monotonie des Supports auch für Sequenzen, dh: r s sup(r) Ø sup(s) Verfahren zum Bestimmen häufiger Sequenzen nutzen diese Eigenschaft aus, um in einer gegebenen Sequenzdatenbank D alle Sequenzen zu finden, die Support von mindestens minsup haben 62

GSP GSP ist wie A-Priori eine Algorithmus, der auf einer Generierung und Ausputzen von Kandidaten beruht i-te Iteration betrachtet Sequenzen der Länge i jede Iteration besteht aus zwei Phasen Generierung von Kandidaten-Sequenzen der Länge i aus häufigen Sequenzen der Länge (i-1) Ausputzen (pruning) der Kandidaten-Sequenzen mittels Durchlaufs durch die Sequenzdatenbank; nur jene mit Support größer gleich minsup bleiben erhalten 63

GSP 1 // Hä ufige Sequenzen aus einem Symbol bestimmen 2 F 1 = {ÈiÍ : i œ sup(èií,d) Ø minsup}; 3 4 // Artikelmengen steigender Kardinalität betrachten 5 int k = 2; 6 while(f k 1 = ÿ) { 7 8 // Generiere Kandidaten - Sequenzen der Lä nge k 9 C k = {r + s[k 1] : r œ F k 1 s œ F k 1 r[1 : k 2] = s[1 : k 2]}; 10 11 // Ausputzen der Kandidaten - Sequenzen 12 F k = {r œ C k : sup(r, D) Ø minsup}; 13 14 k = k + 1; 15 } 16 17 return F = t k 1 i=1 F i 64

Beispiel GSP Die folgende Sequenzdatenbank sei gegeben Èa abí ÈbcdÍ Èb abí ÈcaÍ D = Èd aí ÈbdaÍ Èb cbí ÈbaÍ Èc cí ÈaceÍ und es sollen häufige Sequenzen für minsup = 2 bestimmt werden F 1 = {ÈaÍ, ÈbÍ, ÈcÍ, ÈdÍ} 65

Beispiel GSP Erste Iteration (k=2) ; ÈaaÍ, Èa bí, Èa cí, Èa dí, Èb aí, Èb bí, Èb cí, Èb dí, C 2 = Èc aí, Èc bí, Èc cí, Èc dí, Èd aí, Èd bí, Èd cí, Èd dí F 2 = ) ÈabÍ, Èb aí, Èb bí, Èb cí, Èb dí, Èd aí * < weite Iteration (k=3) C 3 = Èa bbí, Èb aaí, Èb abí, Èb ací, Èb adí, Èb baí, Èb bbí, Èb bcí, Èb bdí, Èb caí, Èb cbí, Èb ccí, Èb cdí, Èb daí, Èb dbí, Èb dcí, Èb ddí, Èd aaí F 3 = ÿ 66

67 GSP GSP kann als Breitensuche (breadth-first search) auf dem Präfixbaum aller Sequenzen interpretiert werden F 1 F 2 ÿ a a b c d e b a b c d e c a b c d e d a b c d e e a b c d e

Horizontale vs vertikale Speicherung GSP beruht auf einer horizontalen Speicherung der Sequenzdatenbank, dh wir können eine Sequenz nur vollständig, zb anhand einer ID, lesen um Ermitteln des Supports der Kandidaten-Sequenzen wird die gesamte Sequenz-Datenbank durchlaufen Bei vertikaler Speicherung der Sequenzdatenbank wird für jedes Symbol des Alphabets eine Liste seiner Vorkommen, bestehend aus ID und Positionen, in den Sequenzen gespeichert 68

Horizontale vs vertikale Speicherung Horizontale Speicherung: (1, Èa abí) (2, Èb cdí) (3, Èb abí) (4, Èc aí) (5, Èd aí) (6, Èb daí) (7, Èb cbí) (8, Èb aí) (9, Èc cí) (10, Èa ceí) Vertikale Speicherung: a æè(1, [1, 2]), (3, [2]), (4, [2]), (5, [2]), (6, [3]), (8, [2]), (10, [1])Í b æè(1, [3]), (2, [1]), (3, [1, 3]), (6, [1]), (7, [1, 3]), (8, [1])Í c æè(2, [2]), (4, [1]), (7, [2]), (9, [1, 2]), (10, [2])Í d æè(2, [3]), (5, [1]), (6, [2])Í e æè(10, [3])Í 69

SPADE SPADE verwendet vertikale Speicherung und nutzt diese aus, um den Support von Kandidaten-Sequenzen effizienter durch geschicktes Schneiden ihrer Listen zu bestimmen Beispiel: Bestimme den Support der Sequenz <a b> durch Schneiden der Listen von a und b a æè(1, [1, 2]), (3, [2]), (4, [2]), (5, [2]), (6, [3]), (8, [2]), (10, [1])Í b æè(1, [3]), (2, [1]), (3, [1, 3]), (6, [1]), (7, [1, 3]), (8, [1])Í Èa bíæè(1, [3]), (3, [3])Í 70

SPADE Wollen wir den Support einer Kandidaten-Sequenz r + s[k-1] der Länge k bestimmen, so schneiden wir die Listen der häufigen Sequenzen r und s der Länge (k-1) wie folgt: behalte Einträge mit gleicher ID, dh Sequenz muss r und s als Teilsequenzen beinhalten und behalte alle Positionen aus dem Eintrag von s, so dass es eine kleinere Position im Eintrag von r gibt 71

SPADE Die ahl der Einträge in der resultierenden Liste entspricht dem Support der Sequenz r + s[k-1] Die Positionen innerhalb eines Eintrags geben an, wo ein Vorkommen von in der Sequenz r + s[k-1] mit der gegebenen ID endet Beispiel: r = Èx yíæè(1, [2, 11]), (2, [6]), (3, [1]), (5, [5, 11])Í s = Èx zíæè(1, [4, 12]), (2, [5]), (4, [6]), (5, [4, 14])Í r + s[2] = Èx yzíæè(1, [4, 12]), (5, [14])Í 72

73 SPADE SPADE kann als Tiefensuche (depth first search) auf dem Präfixbaum aller Sequenzen interpretiert werden Breitensuche (breadth first search) kann ebenfalls mit Hilfe der vertikalen Speicherung und Schneiden der Listen implementiert werden ÿ a a b c d e b a b c d e c a b c d e d a b c d e e a b c d e F 1 F 2

SPADE 1 void spade(p, minsup, F, k) { 2 for(r a œ P ) { 3 // Füge die Sequenz r a zu hä ufigen Sequenzen hinzu 4 F = F fi {(r a, sup(r a )} 5 6 // Bestimme hä ufige Sequenzen der Lä nge k +1 mit Prä fix r a 7 P a = ÿ 8 9 for(r b œ P ) { 10 // Bestimme Kandidaten - Sequenz 11 r ab = r a + r b [k] 12 13 // Schneide Listen 14 L(r ab )=L(r a ) fl L(r b ) 15 16 // Behalte Kandidaten - Sequenz, falls diese hä ufig ist 17 if( L(r ab ) Ø minsup) { 18 P a = P a fi {(r ab, L(r ab ))} 19 } 20 } 21 22 // Rekursiver Aufruf, falls es hä ufige Sequenzen der Lä nge k +1 mit Präfix r a gibt 23 if(p a = ÿ) { 24 spade(p a, minsup, F, k +1) 25 } 26 } 27 } 28 // Initialer Aufruf auf allen Sequenzen der Lä nge 1 bestehend aus hä ufigen Artikeln 29 P = {(s, L(s)) s œ L(s) Ø minsup} 30 spade(p, minsup, ÿ, 1) 74

PrefixSpan PrefixSpan als Verfahren zum Finden häufiger Sequenzen setzt wie FP-Growth auf Musterwachstum und generiert keine Kandidaten, die überprüft werden müssen PrefixSpan betrachtet für bekannte häufige Sequenz r die Projektion D r der Sequenzdatenbank für das Präfix r, welche für jede ursprüngliche Sequenz nur noch das Suffix nach dem ersten Auftreten von r enthält Beispiel: Betrachte häufige Sequenz r = <a b> D = I Èa cbdí Èc abddí ÈababaÍ ÈaabcdÍ J D ab = I ÈdÍ Èd dí ÈabaÍ ÈcdÍ J 75

PrefixSpan PrefixSpan findet in Projektion D r alle häufigen Symbole und betrachtet für jedes häufige Symbol s rekursiv die Projektion der Sequenzdatenbank D r+s Projektion der Sequenzdatenbank kann effizient durch Verwalten von Indizes, ohne Kopieren der Sequenzen implementiert werden für jede Sequenz muss ein Index gespeichert werden, der angibt, welches Suffix der Sequenz in der Projektion noch zu betrachten ist 76

PrefixSpan 1 // Menge hä ufiger Sequenzen 2 F = ÿ 3 4 // Rekursives Bestimmen hä ufiger Sequenzen 5 void prefixspan(d r, r, minsup) { 6 7 // Bestimme hä ufige Symbole in Projektion 8 S = {s œ : sup(s, D r ) Ø minsup} 9 10 for(s œ S) { 11 // Hä ufige Sequenz r+s merken 12 F = F fi {r + s}; 13 14 // Projektion auf r+s 15 D r+s = ÿ; 16 for (t œ D r ) { 17 // Projektion von Sequenz t auf Symbol s -- Suffix nach erstem Vorkommen von s 18 t Õ = t s ; 19 if (t Õ = ÈÍ) { 20 D r+s = D r+s fi {t Õ }; 21 } 22 } 23 24 // Rekursion 25 if (D r+s = ÿ) prefixspan(d r+s, r + s, minsup); 26 } 27 } 28 29 // Initialer Aufruf 30 prefixspan(d, ÈÍ, minsup); 77

Beispiel PrefixSpan Die folgende Sequenzdatenbank sei gegeben Èa abí ÈbcdÍ Èb abí ÈcaÍ D = Èd aí ÈbdaÍ Èb cbí ÈbaÍ Èc cí ÈaceÍ und es sollen häufige Sequenzen für minsup = 2 bestimmt werden 78

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ Èa bí D ÈaÍ = ÈbÍ D Èa bí = Èc eí F = F fi {ÈaÍ} F = F fi {Èa bí} 79

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ Èc dí Èa bí ÈbÍ D ÈbÍ = Èd aí D ÈbaÍ = Èc bí ÈaÍ F = F fi {ÈbÍ} F = F fi {Èb aí} 80

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ Èc dí Èa bí D ÈbÍ = Èd aí D Èb bí = Èc bí ÈaÍ F = F fi {ÈbÍ} F = F fi {Èb bí} 81

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ Èa bí Èc dí ÈdÍ D ÈbÍ = Èc bí Èd aí ÈaÍ D Èb cí = ÈbÍ F = F fi {ÈbÍ} F = F fi {Èb cí} 82

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ Èc dí Èa bí D ÈbÍ = Èd aí D Èb dí = ÈaÍ Èc bí ÈaÍ F = F fi {ÈbÍ} F = F fi {Èb dí} 83

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ ÈdÍ ÈaÍ D ÈcÍ = ÈbÍ ÈcÍ ÈeÍ F = F fi {ÈcÍ} 84

Beispiel PrefixSpan Èa abí ÈbcdÍ Èb abí ÈcaÍ D ÈÍ = Èd aí ÈbdaÍ Èb cbí Èc cí ÈbaÍ ÈaceÍ D ÈdÍ = ÈaÍ ÈaÍ D Èd aí = F = F fi {ÈdÍ} F = F fi {Èd aí} 85

usammenfassung Bestimmen von Assoziationsregeln mit Konfidenz höher als minconf aus häufigen Artikelmengen Assoziationsregeln mit hoher Konfidenz nicht unbedingt informativ; Lift als alternatives Maß identifiziert überraschende Assoziationsregeln GSP und SPADE als Verfahren zum Finden häufiger Sequenzen, der auf den gleichen Ideen wie A-Priori basiert PrefixSpan verwendet die Idee des Musterwachstums und kommt ohne Generierung von Kandidaten aus 86

Literatur [1] M J aki und W Meira Jr: Data Mining and Analysis, Cambridge University Press, 2014 (Kapitel 10 und 12) 87