Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Data Mining unter Constraints

Ähnliche Präsentationen


Präsentation zum Thema: "Data Mining unter Constraints"—  Präsentation transkript:

1 Data Mining unter Constraints
Seminar „Data Mining und Warehousing“, Prof. Schek, Dr. Böhm. ETH Zürich WS 99/00, Endre Bangerter

2 Einführung „Herkömmliche“ Algorithmen zum Mining von Association Rules und Sequential Patterns können folgendermassen umrissen werden: Anwender definiert Bedingungen: Supportschwelle (und Confidenceschwelle) Miningalgorithmus wird gestartet. Anwender wartet. Miningalgorithmus gibt alle Regeln oder Muster aus. Thema der Präsentation sind „Erweiterungen / Verbesserungen der herkömmlichen Algorithmen“, welche es dem Anwender erlauben den Mining-Prozess „zu kontrollieren“.

3 Vortragsübersicht Online Association Rule Mining Einführung „Sequential Pattern Mining“ Sequential Pattern Mining with Regular Expression Constraints Zusammenfassung

4 Online Association Rule Mining
Welche Verbesserungen werden angestrebt? Berechnung der Association Rules soll „online“ erfolgen. „online“ heisst: Benutzer ist über den Stand des Mining Prozesses informiert. Der Benutzer soll in den Mining Prozess eingreifen können, indem er während des Mining Prozesses die Supportschwelle (support threshold) beeinflussen kann. „Interaktivität“ „bessere Resultate“ „in weniger Zeit“

5 Online Association Rule Mining: Lösungsansatz
Mining erfolgt in zwei Schritten: Finde alle „large Itemsets“ (d.h. alle Itemsets mit Support > s) Der vorgestellte Algorithmus setzt hier an Berechne aus den „large Itemsets“ die Association Rules mit „confidence > c“ keine DB Zugriffe  „effizient“

6 CARMA „continuous association rule mining algorithm“ [1] Problemstellung
Gegeben: Eine DB D von Transaktionssequenzen und eine Sequenz von Supportschwellen, welche zur Laufzeit vom Benutzer frei gewählt werden können. Gesucht: Menge der large Itemsets aus D bezüglich einer berechenbaren Supportschwelle S Transaktion Supportschwelle t1= {Bier, Chips} s1= 0.5% t5000 = {Bier, Brot, Wein} s5000 = 1.1% t5001= {Käse, Schokolade} s5001 = 1.1% t9000 = {Bier, Zahnbürste} s9000= 2.1%

7 CARMA: Übersicht Algorithmus zur Berechnung der „large Itemsets“
Algorithmus besteht aus 2 Teilen (Phasen) Phase 1: ( Erzeugung einer Übermenge der large Itemsets) Input: Transaktionssequenz, Supportsequenz Einmaliges (!) Durchlaufen der Transaktionssequenz Der Supportschwelle kann zur Laufzeit geändert werden (  „Supportsequenz“) Output: Datenstruktur (Verband V), dessen Knoten eine Uebermenge der „large Itemsets“ bezüglich einer Supportschwelle sind.

8 CARMA: Übersicht Phase 2: (Entfernung der small Itemsets vom Resultat der Phase1) Input: Transaktionssequenz, Supportsequenz, DS (Verband V) „Raffiniertes“ Support Counting zwecks Eliminierung der small Itemsets Output: V welches alle large Itemsets mit Support > S enthält.

9 CARMA Phase 1: Datenstruktur
In Phase 1 wird während des Scannens der Transaktionssequenz eine Verband-Datenstruktur V aufgebaut. In jedem Schritt können Knoten zu V hinzugefügt oder entfernt werden. Die Datenstruktur enthält eine Übermenge der large Itemsets bezüglich einer Supportschwelle S (zur Transaktion ti). Dies sind die Knoten in Vi. Die Kanten in Vi stellen „ist Übermenge / Untermenge“ Beziehungen dar. { } { Chips} { Bier } {Käse} { Bier, Chips} Vi aktuelle Trans. t t tk t t 1 2 i n Zeit

10 CARMA Phase 1: Datenstruktur
{ } { Chips} { Bier } {Käse} { Bier, Chips} V Einfügen von {Bier,Chips} aktuelle Trans. t t t t t 1 2 j i n maxMissed({Bier,Chips}) count( {Bier,Chips} ) Für alle v  V berechnet der Algorithmus die folgenden Grössen firstTrans(v) : Index der Transaktion bei welcher v in V aufgenommen wurde maxMissed(v) : Abschätzung der #Transaktionen, die v enthalten vor dem Einfügen von v count(v) : #Transaktionen, die v enthalten seit dem Einfügen von v count(v), firstTrans(v), maxMissed(v) werden für jeden Knoten v gespeichert Sind diese Grössen bekannt lässt sich ein Supportintervall für v zur Transaktion i angeben: £ supporti(v) £ count(v) i maxMissed(v) +

11 CARMA Phase 1: Algorithmus
Rekursive Definition des Algorithmus: ti = 0: V = {}, maxMissed({}) = count({}) = firstTrans({}) = 0 Abarbeitung von ti : (ti, Vi-1)  Vi

12 CARMA Phase 1: Algorithmus
Zählschritt: für alle v in Vi-1 welche in ti enthalten sind: count(v) = count(v) + 1 Einfügeschritt: nimm alle w in ti welche nicht in Vi-1 enthalten sind { WENN alle Untermengen v von w in Vi-1 enthalten UND gilt maxSupport(w) >= si DANN Vi = Vi-1 + w count(w) = 1 firstTrans(w) = i maxMissed(w) = min{ (i-1)·avg(si) + |w|-1, maxMissed(v)+count(v) - 1 | w in V } } + Bespreche Bedingung maxSupport(w) >= si + Bespreche closure relation + Folie auflegen Löschschritt: Lösche w in Vi und alle Übermengen von w WENN maxSupport(w) < si UND |w| > 1

13 CARMA Phase 1: Beispiel V V2 V1 V3 V4 { }
(maxMissed, firstTrans, count) [minSupport, maxSupport] { Bier} (0,1,1) [1,1] {Chips } { } (0,0,1) V2 t1={Bier,Chips} s1= 0.3 { } (0,0,0) [0,0] V1 t2={Bier,Chips, Käse} s2= 0.9 { Käse} (0,2,1) [0.5,0.5] {Bier, Chips } (1,2,1) [0.5,1] { Bier} (0,1,2) [1,1] {Chips } { } (0,0,2) V3 { Käse} (0,2,2) [0.66,0.66] {Bier, Chips } (1,2,1) [0.33,0.66] { Bier} (0,1,2) {Chips } (0,1,3) [1,1] { } (0,0,3) V4 {Chips, Käse } (1,3,1) t3={Chips, Käse} s3= 0.5

14 CARMA Phase 1: Besprechung
Es ist offensichtlich dass, keine small Itemsets bezüglich si in V enthalten sind ausschliesslich potentielle large Itemsets bezüglich si in V aufgenommen werden Es ist nicht offensichtlich, dass der Algorithmus (für s1 = s2 = ...= sn) tatsächlich alle large Itemsets findet der Algorithmus für eine zur Laufzeit gewählte Sequenz s der Supportschwellen eine vollständige Menge von large Itemsets, bezüglich einer Supportschwelle, generiert. + Algorithmus garantiert offensichtlich, dass keine small itemsets in V sind + woher wissen wir, dass alle large itemsets enthalten sind (zumal sich die support sequeny ändert) UND weil der Algorithmus keine nur s+1 Sequenzen einfügt

15 CARMA Phase 1: Besprechung
Die Korrektheit des Algorithmus beruht auf dem folgenden Theorem: Let V be the lattice returned by Phase 1 ({t1,..,tn}, s). Then V is a support lattice relative to the support threshold avgn ( sn) + (c + 1) / n with c the maximal cardinality of a large itemset in T For any Itemset v supportn > avgn ( sn) + ( |v| + 1) / n implies v  V + Experiment zeigt Güte der Schätzung von maxMissed() und Konvergenz verhalten von maxMissed()

16 CARMA Phase 1: Besprechung Supportschwelle
10’000 20’000 30’000 40’000 Transaktionen Support Schwelle (%) 1.5 1.25 1 0.75 0.5 Carma : durch das Theorem garantierte Support Schwellen BenutzerIn : Benutzer definierte Support Schwellen

17 CARMA Resultate Zusammenfassung der Resultate, welche auf Test-Implementierungen von CARMA (konstante Supportsequenz!) und Apriori beruhen: Performance: Für „tiefe“ Supportschwellen performt CARMA besser als Apriori CARMA alloziert während des Scannens weniger Hauptspeicher als Apriori Die Grösse des Supportintervalls nimmt mit zunehmender Anzahl von gescannten Transaktionen ab. + Experiment zeigt Güte der Schätzung von maxMissed() und Konvergenz verhalten von maxMissed() + Folie Performance, Supportintervalle XXXXXXXXXXXXXXXXXXXXXXXx

18 Vortragsübersicht Online Association Rule Mining Einführung „Sequential Pattern Mining“ Sequential Pattern Mining with Regular Expression Constraints Zusammenfassung

19 Sequential Pattern Mining: Übersicht
Sequentiall Patterns sind Aussagen über zeitliche Abfolgen von Transaktionen, z.B. „für 5% der PC Käufer gilt: wer einen PC kauft, kauft später einen Drucker und schliesslich einen Scanner“ Es exisitieren verschiedene Erweiterungen der Grundfragestellung. Einführung von Zeitfenstern, z.B. „für 5% der PC Käufer gilt: wer einen PC kauft, kauft innerhalb von 3 Monaten einen Drucker und schliesslich einen Scanner“ Anwendungsgebiete - Beispiele Marketing Krankheitsdiagnose Vorhersage von Erdbeben

20 Sequential Pattern Mining: Definitionen [2],[3]
Item: xk Itemset: ii = (x1, x2, ... , xm), wobei xk  xl, für k  l. Itemset Sequenz: i = <i1, i2, ..., in> a = <a1, ... , an> ist eine Subsequenz von b = <b1, ... , bm>, wenn  i1< i2 < ... < in so dass a1 b1, ... , an bin Datensequenz: Liste von Transaktionen mit den Feldern Sequenz-Id, Transaktions-Id, Transaktions-Zeit Support einer Sequenz s: Bruchteil der Sequenzen von denen s eine Subsequenz ist. Sequential pattern mining: gegeben sei eine DB von Datensequenzen, Supportschwelle s, finde alle Subsequenzen mit support > s. Diese Sequenzen heissen „sequential pattern“ oder „frequent sequence“.

21 Sequential Pattern Mining: Beispiele
Itemset Sequenz: i = < {PC, Bildschirm} , {Scanner, Drucker}, {RAM Upgrade} > Subsequenzen von i < {PC} > , < {Drucker}, {RAM Upgrade} > etc. Support der Sequenz <{Bildschirm}, {Scanner}> ist 66% in Meier: < {PC, Bildschirm} , {Scanner, Drucker}, {RAM Upgrade}> Huber: < {PC} , {On Site Support Vertrag}, {RAM Upgrade} > Zünd: < {Server, Bildschirm}, { DAT Drive} , {Scanner, Drucker}> ...somit ist { Bildschirm, Scanner} für eine Supportschwelle von (z.B.) 52% ein sequential Pattern oder frequent Sequence. und { Bildschirm, Scanner} ist eine 2-Sequenz

22 Vortragsübersicht Online Association Rule Mining Einführung „Sequential Pattern Mining“ Sequential Pattern Mining unter Constraints Zusammenfassung

23 Sequential Pattern Mining unter Constraints
Welche Verbesserungen werden angestrebt? Benutzung von Regular Expressions soll erlauben selektiv nach gewünschten Sequential Patterns zu suchen. Beispiel für Suchausdruck: MineForSequentialPatterns (PC) * ( Drucker, Drucker | Drucker, Server, DAT Drive | DAT Drive, DAT Drive ) Durch geeignetes Einbringen der Regular Expressions in den Mining Prozess soll eine gegenüber herkömmlichen Methoden erhöhte Performance erzielt werden.

24 SPIRIT: Sequential Pattern Mining with Regular Expression Constraints [4],[5]
Gegeben: DB von Datensequenzen D , Supportschwelle S und eine Regular Expression Bedingung R. Gesucht: alle frequent Sequenzen in D bezüglich S welche R erfüllen.

25 Lösungsansatz: Übersicht
Mining erfolgt iterativ (in der k-ten Iteration werden k-Sequenzen generiert) über die folgenden Schritte: Der vorgestellte Algorithmus setzt hier an Generiere potentiell häufige k-Sequenzen Ck aus Fk-1 Läuft im Memory: „günstig“ Man könnte die RE auch nach Schritt 2. anwenden!!!! |Ck| klein machen, weil Kosten unten ~ # Transaktionen * #Kandidaten Entferne „durch Nachzählen“ alle nicht häufigen k-Sequenzen aus Ck  Fk Scannen der DB: „teuer“ Struktur des Algorithmus siehe [3]

26 SPIRIT: Regular Expressions
Regular Expressions sind aequivalent zu endlichen deterministischen Automaten. A(R) R 2 1 1*(2 2 | | 4 4) 2 3 4 a b c d Start state Accept state(s) 4 Eine Sequenz s ist valid if it defines a path from the start state to an accept state of A(R) (I.e., s belongs to L(R) ) Beispiele: <1234>, <122> valid wrt state b iff it defines a path to an accept state of A(R) starting from b Beispiele: <2>, <34> legal wrt state a if it defines a path in A(R) starting from a Beispiele: <1>, <1111>, <123> Beschreibe Idee: Relaxation of REs

27 SPIRIT: Basis Algorithmus
SPIRIT(D , minsup , C) C’ = relaxation of C repeat{ // Erzeugung der Kandidaten using F and C’ generate C(k) = { potentially frequent k-sequences that satisfy C’ } // Löschen P = { s C(k): s has a subsequence that satisfies C’ and does not belong to F } C(k) = C(k) – P // Auszählen der Kandidaten scan D counting support for sequences in C(k) F(k) = frequent sequences in C(k); F = F + F(k); k = k+1 } until TerminatingCondition(F , C’) // Durchsetzen der ursprünglichen RE C output sequences in F that satisfy C Folie Auflegen!!!! Animation

28 SPIRIT: Besprechung Basis Algorithmus
Pruning besteht aus zwei Teilen Pruning basierend auf C‘ bei der Generierung der Kandidaten (constrained based pruning) Pruning basierend auf Support – Constraints (support based pruning) unter Benützung der „closure“ Eigenschaft ( „eine frequent Sequez besteht aus frequent Subsequenzen“) Strategie: Es sollen so wenig Kandidaten wie möglich ausgezählt werden  „Maximierung des Pruning“ Beispiel: Support based & constraint based pruning.

29 SPIRIT: Beispiel zu support- und constraint based pruning
Gegeben: Sequenzen <1, 2, 3, 4> , <1 , 5> , <1 , 2, 2, 4, 5> , <1 , 2, 3, 5, 5, 7> Supportschwelle von 3 und RE: 1*(2 2 | | 4 4) Beispiele für „geprunte“ Subsequenzen: constraint based: <1 , 5> , <1, 2>, < 1, 2, 2, 5> support based: <2 , 4 , 5>, <1, 4>

30 SPIRIT: Besprechung Grund Algorithmus
Situation: Maximierungsproblem mit zwei Bedingungen. Frage: Welche Abhängigkeiten bestehen zwischen den beiden Bedinngungen. Eine Eigenschaft von Bedingungen an Sequenzen ist die „Anti - Monotonität“ Definition: Eine Bedingung C ist anti–monoton, wenn alle Subsequenzen einer Sequenz, welche C erfüllt, C ebenfalls erfüllen.

31 SPIRIT: Beispiel zu Anti-Monotonität
Die RE R: 1* ist anti-monoton. (zB. <1,1> ist Subsequenz von <1, 1, 1> Die RE R: 1*(2 2 | | 4 4) ist nicht anti-monoton, weil die Sequenz S = <1, 1, 1, 2, 3, 4> R erfüllt und die Subsequenz <1, 2, 3> von S R nicht erfüllt.

32 SPIRIT: Besprechung Basis Algorithmus
Auswirkung der „Anti - Monotonität“ auf die Pruning Strategie C ist anti – monoton alle frequent Subsequenzen sind in F und können somit für das Pruning verwendet werden. C ist nicht anti – monoton (gilt i.a. für Regular Expressions) Es existieren Subsequenzen, welche zwar frequent sind aber C nicht erfüllen und somit nicht in F sind. Solche Subsequenzen stehen somit für das Support - based pruning nicht zur Verfügung und verringern somit dessen Wirksamkeit. Beispiel:

33 SPIRIT: Auswirkungen der „nicht Anti-Monotonität“
Frequent k-Sequenzen Frequent k-Sequenzen, die C‘ erfüllen

34 SPIRIT: Besprechung Basis Algorithmus
Folgerung: In Hinblick auf die „Pruning Maximierung“ ist es (möglicherweise) sinnvoll anstatt der vom Anwender vorgegebenen restriktiven Regular Expression C eine abgeschwächte Bedingung C‘ zu verwenden. Basierend auf dieser Überlegung werden 4 verschiedene Variationen des Grund Algorithmus betrachtet: Algorithmus Bedingung SPIRIT(N) Alle Elemente kommen in R vor + Überlegung, dass die schwächeren C´ das Support based pruning weniger stark einschränken, weil sie „weniger anti - monoton“ sind + Gibt es L, V, R Constraints, welche Anti – Monoton sind. SPIRIT(L) Legal bezüglich eines ZustandesA(R) SPIRIT(V) Valid bezüglich eines ZustandesA(R) SPIRIT(R) Valid (C’ = C = R)

35 SPIRIT (N) Algorithmus
C‘ ist anti-monoton, aber sehr „schwach“ d.h. wenig selektiv  support based pruning dominiert. Dieser Algorithmus entspricht (im wesentlichen) dem „herkömmlichen Algorithmus“ aus [3] Kandidaten Generierung: Join der Fk-1 Sequenzen ergibt die Kandidatensequenzen Ck. Beispiel: { a, b, f, g } und { b, f, g, k } werden zusammengefügt zu { a, b, f, g, k } Pruning: Eine Sequenz aus Ck wird gelöscht, wenn eine (k –1) Subsequenz nicht in Fk-1 vorkommt.

36 SPIRIT (L) Algorithmus
C‘ ist nicht anti-monoton Kandidaten Generierung: Join der Fk-1 Sequenzen Fk-1(b) = <s1,...,sk-1> mit Fk-1(c) = <t1,...,tk-1> über den k-2 Suffix von Fk-1(b) mit dem k-2 Präfix von Fk-1(c), somit erhält man als Kandidatensequenz <s1,...,sk-1, tk-1 > Pruning: Eine Sequenz aus Ck wird gelöscht, wenn eine maximale legale Subsequenz gefunden wird, welche nicht eine frequent Sequnenz ist, also nicht in F vorhanden ist. s1 b c

37 SPIRIT: Beispiel Kandidatengenerierung
2 1 D: < > < > < > < > < > minsup = 2 2 3 4 a b c d accept 4 SPIRIT(N): F(2) = { <1 1> , <1 2>, <1 3> , <2 2>, <2 3>, <2 4>, <3 4>, <4 3> } C(3) = { <1 1 1> , <1 1 2>, <1 1 3>, <1 2 2>, <1 2 3>, <2 2 2>, <2 2 3>, <2 2 4>, <2 3 4>, <2 4 3> } SPIRIT(L): F(2) = { <1 1> , <1 2>, <2 2>, <2 3>, <3 4>} C(3) = { <1 1 1> , <1 1 2>, <1 2 2>, <1 2 3>, <2 3 4> }

38 SPIRIT (V) Algorithmus
C‘ ist nicht anti-monoton Kandidaten Generierung: Pruning:

39 SPIRIT (R) Algorithmus
C‘ = C ist nicht anti-monoton, C‘ ist stark, d.h. sehr selektiv  constraint based pruning dominiert, support based pruning eher gering Kandidaten Generierung: Es ist nicht möglich die bestehenden valid frequent Sequenzen aus F zur Kandidatengenerierung heranzuziehen. Die Sequenzen werden mittels Durchlaufen des zu C gehörenden Automaten erzeugt. Hierzu bestehen Optimierungsstrategien. Pruning: Eine Sequenz aus Ck wird gelöscht, wenn eine valid Subsequenz gefunden wird, welche nicht eine frequent Sequnenz ist, also nicht in F vorhanden ist.

40 SPIRIT: Resultate Zusammenfassung der Resultate, welche auf Implementierungen der SPIRIT Algorithmen beruhen: SPIRIT(V) bis zu einer Grössenordnung schneller als SPIRIT(N) „Laufzeit-Anteil“ des Pruning und der Kandidatengenerierung beträgt ca. 1% der Gesamt-Laufzeit.

41 Vortragsübersicht Association Rule Mining unter Constraints Einführung „Sequential Pattern Mining“ Sequential Pattern Mining unter Constraints Zusammenfassung

42 Zusammenfassung Es wurden zwei Algorithmen präsentiert, welches es dem Data-Mining Anwender ermöglichen den Mining Prozess „zu lenken“ und somit zielgerichteter vorzugehen. Dies wird erreicht indem man nebst der Supportbedingung zu Beginn des Mining-Prozesses zusätzliche Bedingungen einbezieht. CARMA: Association Rule Mining mit Supportsequenzen. SPIRIT: Pattern Mining mit Constraints in Form von Regular Expressions.

43 Literaturliste [1] Online Association Rule Mining. Hidber
[2] Mining Sequential Patterns. Agrawal, Srikant. [3] Mining Sequential Patterns: Generalizations and Performance Improvements. Srikant, Agrawal. [4] Mining Sequential Patterns with Regular Expression Constraints. Garofalakis, Rastogi, Shim. [5] Mining Sequential Patterns with Regular Expression Constraints. Garofalakis, Rastogi, Shim. Technical Report.


Herunterladen ppt "Data Mining unter Constraints"

Ähnliche Präsentationen


Google-Anzeigen