Data Mining unter Constraints Seminar Data Mining und
- Slides: 43
Data Mining unter Constraints Seminar „Data Mining und Warehousing“, Prof. Schek, Dr. Böhm. ETH Zürich WS 99/00, 9. 12. 99. Endre Bangerter
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“.
Vortragsübersicht § Online Association Rule Mining § Einführung „Sequential Pattern Mining“ § § Sequential Pattern Mining with Regular Expression Constraints Zusammenfassung
Online Association Rule Mining Welche Verbesserungen werden angestrebt? § „Interaktivität“ è„bessere Resultate“ è„in weniger Zeit“ § 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.
Online Association Rule Mining: Lösungsansatz Mining erfolgt in zwei Schritten: Der vorgestellte Algorithmus setzt hier an keine DB Zugriffe „effizient“ Finde alle „large Itemsets“ (d. h. alle Itemsets mit Support > s) Berechne aus den „large Itemsets“ die Association Rules mit „confidence > c“
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. Transaktion Supportschwelle t 1= {Bier, Chips}. . . . s 1= 0. 5%. . t 5000 = {Bier, Brot, Wein} s 5000 = 1. 1% t 5001= {Käse, Schokolade}. . . . s 5001 = 1. 1%. . t 9000 = {Bier, Zahnbürste}. . s 9000= 2. 1%. . Gesucht: Menge der large Itemsets aus D bezüglich einer berechenbaren Supportschwelle S
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.
CARMA: Übersicht § Phase 2: (Entfernung der small Itemsets vom Resultat der Phase 1) § 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.
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. Vi {} { Bier }{ Chips} {Käse} aktuelle Trans. t 1 t 2 tk { Bier, Chips} Zeit ti tn
CARMA Phase 1: Datenstruktur V {} Einfügen von {Bier, Chips} { Bier }{ Chips} {Käse} t 1 t 2 tj ti tn count( {Bier, Chips} ) max. Missed({Bier, Chips}) { Bier, Chips} § aktuelle Trans. Für alle v V berechnet der Algorithmus die folgenden Grössen § § § first. Trans(v) : Index der Transaktion bei welcher v in V aufgenommen wurde max. Missed(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), first. Trans(v), max. Missed(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: count(v) £ support (v) £ count(v) + max. Missed(v) i i
CARMA Phase 1: Algorithmus § Rekursive Definition des Algorithmus: § ti = 0: V = {}, max. Missed({}) = count({}) = first. Trans({}) = 0 § Abarbeitung von ti : (ti, Vi-1) Vi
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 max. Support(w) >= si DANN Vi = Vi-1 + w count(w) = 1 first. Trans(w) = i max. Missed(w) = min{ (i-1)·avg( s i) + |w|-1, max. Missed(v)+count(v) - 1 | w in V } } § Löschschritt: Lösche w in Vi und alle Übermengen von w WENN max. Support(w) < si UND |w| > 1
V {} (max. Missed, first. Trans, count) [min. Support, max. Support] CARMA Phase 1: Beispiel V 1 {} (0, 0, 0) [0, 0] t 1={Bier, Chips} s 1= 0. 3 } V 3 { Bier} (0, 1, 2) [1, 1] {} (0, 0, 2) [1, 1] {Chips } (0, 1, 2) [1, 1] {Bier, Chips } (1, 2, 1) [0. 5, 1] {} V 2 (0, 0, 1) [1, 1] s, hip C , r ie {B t 2= se Kä 0. 9 { Käse} (0, 2, 1) [0. 5, 0. 5] t 3={Chips, Käse} s 3= 0. 5 { Bier} (0, 1, 1) [1, 1] V 4 {Chips } (0, 1, 1) [1, 1] {} (0, 0, 3) [1, 1] { Bier} {Chips } (0, 1, 2) [0. 66, 0. 66] (0, 1, 3) [1, 1] {Bier, Chips } (1, 2, 1) [0. 33, 0. 66] { Käse} (0, 2, 2) [0. 66, 0. 66] {Chips, Käse } (1, 3, 1) [0. 33, 0. 66]
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 s 1 = s 2 =. . . = 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.
CARMA Phase 1: Besprechung § Die Korrektheit des Algorithmus beruht auf dem folgenden Theorem: Let V be the lattice returned by Phase 1 ({t 1, . . , 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
CARMA Phase 1: Besprechung Supportschwelle Benutzer. In : Benutzer definierte Support Schwellen Carma : durch das Theorem garantierte Support Schwellen Support Schwelle (%) 1. 5 1. 25 1 0. 75 0. 5 10’ 000 20’ 000 30’ 000 Transaktionen 40’ 000
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.
Vortragsübersicht § Online Association Rule Mining § Einführung „Sequential Pattern Mining“ § § Sequential Pattern Mining with Regular Expression Constraints Zusammenfassung
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
Sequential Pattern Mining: Definitionen [2], [3] § § § § Item: xk Itemset: ii = (x 1, x 2, . . . , xm), wobei xk xl, für k l. Itemset Sequenz: i = <i 1, i 2, . . . , in> a = <a 1, . . . , an> ist eine Subsequenz von b = <b 1, . . . , bm>, wenn i 1< i 2 <. . . < in so dass a 1 b 1, . . . , an bin Datensequenz: Liste von Transaktionen mit den Feldern Sequenz. 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“.
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
Vortragsübersicht § Online Association Rule Mining § Einführung „Sequential Pattern Mining“ § Sequential Pattern Mining unter Constraints § Zusammenfassung
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: Mine. For. Sequential. Patterns (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.
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.
Lösungsansatz: Übersicht Mining erfolgt iterativ (in der k-ten Iteration werden k. Sequenzen generiert) über die folgenden Schritte: Der vorgestellte Algorithmus setzt Läuft im Memory: hier an „günstig“ Scannen der DB: „teuer“ Generiere potentiell häufige k-Sequenzen Ck aus Fk -1 Entferne „durch Nachzählen“ alle nicht häufigen k. Sequenzen aus Ck Fk Struktur des Algorithmus siehe [3]
SPIRIT: Regular Expressions § R Regular Expressions sind aequivalent zu endlichen deterministischen Automaten. 1*(2 2 | 2 3 4 | 4 4) a Start state § 2 1 2 b 4 3 c 4 A(R) d Accept state(s) 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>
SPIRIT: Basis Algorithmus SPIRIT(D , minsup , C) C’ = relaxation of C repeat{ // Erzeugung der Kandidaten using F and C’ generate C(k) = { potentially frequent ksequences 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 Terminating. Condition(F , C’) // Durchsetzen der ursprünglichen RE C output sequences in F that satisfy C
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“
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 | 2 3 4 | 4 4) Beispiele für „geprunte“ Subsequenzen: constraint based: support based: <1 , 5> , <1, 2>, < 1, 2, 2, 5> <2 , 4 , 5>, <1, 4>
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.
SPIRIT: Beispiel zu Anti-Monotonität Die RE R: 1* ist anti-monoton. (z. B. <1, 1> ist Subsequenz von <1, 1, 1> Die RE R: 1*(2 2 | 2 3 4 | 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.
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.
SPIRIT: Auswirkungen der „nicht Anti. Monotonität“ Frequent k-Sequenzen, die C‘ erfüllen
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 SPIRIT(L) Legal bezüglich eines Zustandes. A(R) SPIRIT(V) Valid bezüglich eines Zustandes. A(R) SPIRIT(R) Valid (C’ = C = R)
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.
SPIRIT (L) Algorithmus § § C‘ ist nicht anti-monoton Kandidaten Generierung: Join der Fk-1 Sequenzen Fk-1(b) = <s 1, . . . , sk-1> mit Fk-1(c) = <t 1, . . . , 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 <s 1, . . . , sk-1, tk-1 > b § s 1 c 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.
SPIRIT: Beispiel Kandidatengenerierung D: <1 2 3 2> <1 1 2 2> <2 4 3 4> <2 3 4 3> <1 1 2 3> SPIRIT(N): 2 1 minsup = 2 a 2 b 3 c 4 4 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): d accept F(2) = { <1 1> , <1 2>, <2 3>, <3 4>} C(3) = { <1 1 1> , <1 1 2>, <1 2 3>, <2 3 4> }
SPIRIT (V) Algorithmus § C‘ ist nicht anti-monoton § Kandidaten Generierung: § Pruning:
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.
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.
Vortragsübersicht § Association Rule Mining unter Constraints § Einführung „Sequential Pattern Mining“ § Sequential Pattern Mining unter Constraints § Zusammenfassung
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.
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.
- Mining complex types of data
- Multimedia data mining
- Efee ball
- Was ist navigation
- Erlernte hilflosigkeit
- Galileo unter fremden decken
- Methodenkompetenz fachkompetenz
- Excel fläche unter kurve
- Der fußball liegt unter dem schreibtisch
- Pantoffelheld mann
- Lagrange funktion
- Was versteht man unter marktsegmentierung?
- Solange du deine füße unter meinem tisch hast
- Unter den linden poesia
- Was versteht man unter ausdauer
- Unter eines baumes rinde
- Das geht unter die gürtellinie
- Maisfolie
- Hamstern pik as
- Leiden unter akkusativ oder dativ
- Strip mining vs open pit mining
- Strip mining vs open pit mining
- Difference between strip mining and open pit mining
- Text and web mining
- Data integrity constraints are used to
- Data reduction in data mining
- Data mining in data warehouse
- What is missing data in data mining
- Concept hierarchy generation for nominal data
- Data reduction in data mining
- Data reduction in data mining
- Shell cube in data mining
- Data reduction in data mining
- Perbedaan data warehouse dan data mining
- Data mining dan data warehouse
- Crm data warehouse models
- Complex data types in data mining
- Olap data mining
- Noisy data in data mining
- Rolap architecture
- Data preparation for data mining
- Data compression in data mining
- Introduction to data warehousing and data mining
- Data warehouse dan data mining