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

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

Frequent Itemset Mining und FP-Tree

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Wissensentdeckung in Datenbanken

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

Studienarbeit. Maria Soldatova

Lernen von Assoziationsregeln

Konzeptbeschreibung Ziel: Methode: Vorgehen: Entfernen von Attributen Verallgemeinerung von Attributen Relevanzanalyse der restlichen Attribute

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

Mehrwegbäume Motivation

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

5. Assoziationsregeln

Maschinelles Lernen: Symbolische Ansätze

Apriori-Algorithmus zur Entdeckung von Assoziationsregeln

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Wann sind Codes eindeutig entschlüsselbar?

Dynamisches Huffman-Verfahren

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03.

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Algorithmen und Datenstrukturen II

Data Mining. Informationssysteme, Sommersemester 2017

Datenanalyse mit Data Mining

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

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

Geometrische Datenstrukturen

Algorithmische Bioinformatik 1

Datenstrukturen & Algorithmen

7. Sortieren Lernziele. 7. Sortieren

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Algorithmen und Datenstrukturen 1

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Effiziente Algorithmen 2

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

Geometrische Algorithmen Segmentschnitt

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

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

Übrigens: um den Algorithmus im Unterricht einzuführen, sind keine Formeln notwendig! Warum reicht die normale ASCII-Codierung nicht aus?

Binärbäume: Beispiel

6.6 Vorlesung: Von OLAP zu Mining

Informatik II, SS 2014

Kodierungsalgorithmen

Algorithmen und Datenstrukturen

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Kapitel 12: Induktive

Repetitive Strukturen

Durchschnitt von Matroiden

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Kapitel 11: Association Rules

Vorlesung Datenstrukturen

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.

IR Seminar SoSe 2012 Martin Leinberger

Algorithmen und Datenstrukturen 2

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Datenstrukturen und Algorithmen

Vorlesung Datenstrukturen

Datenstrukturen. einfach verkettete Liste

ContainerDatenstrukturen. Große Übung 4

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Füllen von Primitiven

Algorithmische Bioinformatik 1

Kapitel 6: Graphalgorithmen Gliederung

Indexieren und Suchen

Vorkurs Informatik WiSe 15/16

Zentralübung zur Vorlesung Diskrete Strukturen

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Binäre Bäume Darstellung und Traversierung

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113

TECHNISCHE UNIVERSITÄT MÜNCHEN. Abgabe: (vor der Vorlesung)

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

4. Assoziationsregeln. 4.1 Einleitung. 4.2 Einfache Assoziationsregeln. 4.1 Einleitung. Inhalt dieses Kapitels. Motivation

Informatik Abitur Bayern 2017 / II - Lösung

Textkompression: Burrows-Wheeler-Transformation

Algorithmische Bioinformatik 1

1 Matroide. 1.1 Definitionen und Beispiele. Seminar zur ganzzahligen Optimierung Thema: Durchschnitt von Matroiden - Satz von Edmonds von Dany Sattler

Ansätze zur Erfassung von Faktoren durch Prüfungsaufgaben. (Diskussionen in Dagstuhl sowie mit Prof. Nickolaus, Technikpädagogik, U Stuttgart)

3.8 Bäume. Definition des Baumes

Isomorphie von Bäumen

Entscheidungsbäume aus großen Datenbanken: SLIQ

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

4.1 Einleitung. 4. Assoziationsregeln. 4.2 Einfache Assoziationsregeln. 4.1 Einleitung. Inhalt dieses Kapitels. Motivation. Assoziationsregeln

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Effiziente Algorithmen und Komplexitätstheorie

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

Algorithms for Pattern Mining AprioriTID. Stefan George, Felix Leupold

Kapitel 15: Mining von Sequential Patterns

Hallo Welt für Fortgeschrittene

Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE)

Vorlesung Künstliche Intelligenz Alexander Manecke Oliver Schneider Andreas Stoffel 9. Mai 2006

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Transkript:

Häufige Mengen ohne Kandidatengenerierung Jiawei Han, Micheline Kamber 2006 (2nd ed.)! Ziel 1: Kompression der Datenbank in eine Frequent-Pattern Tree Struktur (FP-Tree)! Stark komprimiert, vollständig bzgl. des Findens häufiger Mengen! Vermeidung von aufwändigen Datenbankdurchläufen! Ziel 2: Entwicklung einer effizienten Methode zur Suche nach häufigen Mengen auf Basis von FP-Trees FP-Tree: Transaktionen! Ein FP-Tree fasst Transaktionen als Wörter auf und stellt gemeinsame Präfixe verschiedener Wörter dar.! Für jede Transaktion wird ein Pfad im FP-Tree angelegt:! Pfade mit gemeinsamem Präfix " Häufigkeit aller Knoten auf dem Weg + 1 und Suffix darunter hängen! Kein gemeinsamer Präfix vorhanden " neuen Zweig anlegen! Divide-and-conquer: Zerlegung der Aufgaben in kleinere Teilaufgaben! Ohne Kandidatengenerierung 1 2 FP-Tree: Items! Einfügen der Items in den Transaktionen nach Häufigkeiten sortiert, nicht-häufige Items werden nicht eingetragen! Parallel anlegen: verweist auf das Vorkommen der items im Baum. Auch die Tabelle ist nach Häufigkeit geordnet.! Zu jedem Eintrag wird eine Liste von zugehörigen Knoten im Baum gespeichert 3 Konstruktion eines FP-Trees Schritte: 1. Finde häufige 1-Mengen 2. Ordnung nach absteigender Häufigkeit 3. Konstruiere FP-Tree und während eines 2. Datenbankdurchlaufs Schritt 1 und 2: Bestimmung der häufigen 1-Mengen für s min = 0.5 und Ordnung nach Häufigkeit TID Items (ordered) frequent 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} 4

Konstruktion eines FP-Trees Schritte: 1. Finde häufige 1-Mengen 2. Ordnung nach absteigender Häufigkeit 3. Konstruiere FP-Tree und während eines 2. Datenbankdurchlaufs Schritt 3: Konstruktion des FP-Trees und der Header Table head c 4 a 3 m 3 p 3 m:2 p:1 Vorteile von FP-Trees! Vollständigkeit:! Es wird niemals ein langes Pattern einer Transaktion geteilt! Die notwendigen Informationen zum Finden der Frequent Itemsets bleiben vollständig erhalten! Kompaktheit:! Reduktion irrelevanter Informationen nicht-häufige Items werden nicht gespeichert.! Durch die Ordnung nach absteigender Häufigkeit werden häufigere Items wahrscheinlicher mehrfach verwendet.! Speicheraufwand ist niemals größer als für die Originaldatenbank. Beispiel: Für Connect-4 DB ist die Kompressionsrate größer als 100! p:2 m:1 5 6 Finden häufiger Mengen mit FP- Trees! Grundidee (divide-and-conquer)! Rekursives Anwachsen häufiger Mengen unter Ausnutzung des FP-Trees Schritt 1: FP-Tree zu Conditional Pattern Base! Die Header Tabelle durchgehen. Die Verweise führen zu den Pfaden, in denen das Item vorkommt.! Methode! Konstruiere die Conditional Pattern Base (Schritt 1) für jedes Item und berechne auf dieser dann den Conditional FP-Tree (Schritt 2)! Wiederhole diesen Prozess für jeden neuen Conditional FP- Tree! bis der resultierende FP-Tree leer ist.! Das Item wird als Suffix betrachtet und alle Präfixe davon als Bedingungen für dieses Suffix. Die Präfixe werden in die Conditional Pattern Base eingetragen.! Die Häufigkeiten der Präfixe werden im Knoten selbst abgelesen und ebenfalls eingetragen. 7 8

Schritt 1: Conditional Pattern Base Schritt 1: Conditional Pattern Base head c 4 a 3 m 3 p 3 p:1 m:2 p:2 m:1 Conditional pattern bases item cond. pattern base c f:3 a f b fca:1, f:1, m fca:2, fca p fcam:2, c head c 4 a 3 m 3 p 3 p:1 m:2 p:2 m:1 Conditional pattern bases item cond. pattern base c f:3 a f b fca:1, f:1, m fca:2, fca p fcam:2, c 9 10 Schritt 1: Conditional Pattern Base head c 4 a 3 m 3 p 3 m:2 p:2 m:1 p:1 Conditional pattern bases item c f:3 a cond. pattern base f b fca:1, f:1, m p fca:2, fca fcam:2, c Schritt 2: Conditional Pattern Base zu Conditional FP Tree! Präfixpfade eines Suffixes bilden die bedingte Basis, d.h. sie werden im Prinzip wie Transaktionen einer ursprünglichen Datenbank behandelt.! Diejenigen Präfixpfade, die häufiger als smin sind, bilden den bedingten FP-Tree (wie zuvor).! Es kann mehrere Pfade im bedingten Baum geben! 11 12

Schritt 2: Conditional FP-Tree! Benutze jeden Eintrag in der Conditional Pattern Base als Transaktion einer Datenbank (hier: 2 Transaktionen mit fca und eine Transaktion mit fcab)! Generiere hieraus den zugehörigen Conditional FP-Tree m-conditional pattern base: fca:2, fca m f:3 m-conditional FP-tree Rekursive Aufrufe liefern alle häufigen Mengen mit m m, fm, cm, am, fcm, fam, cam, fcam 13 Vollständiges Beispiel TID Items (ordered) frequent items 100 {b, c, f} {f, b, c} 200 {a, b, c} {b, c} 300 {d, f} {f} 400 {b, c, e, f} {f, b, c} 500 {f, g} {f} Entferne alle nichthäufigen Mengen (s min = 0,4 ) und ordne Transaktionen nach Häufigkeit. Initialisiere Header Table und baue den ersten FP-Tree auf. 14 1 ursprünglichen 15 P - 1 ursprünglichen 16 P -

c c 1 ursprünglichen 17 P - 2 f 2 ursprünglichen 18 P - c bc c bc 3 3 f 2 ursprünglichen 19 P - ursprünglichen 20 f 2 P - {fbc}:2

c bc c bc {fc}:2 {fbc}:2 {b}:3 {fc}:2 {fbc}:2 2 f 2 ursprünglichen 21 P - b 1 ursprünglichen 22 P - {fb}:2 b {b}:3 c {fc}:2 2 bc {fbc}:2 ursprünglichen 23 f 2 P - 24 Grundlagen Frequent Pattern Growth! Pattern Growth Property! Sei! ein häufiges Item Set und B sei die Conditional Pattern Base von!. Sei weiter " ein Item Set in B.! # " ist ein häufiges Item Set gdw. " häufig ist in B.! abcdef is ein häufiges Item Set gdw.! abcde häufig ist und! f häufig ist in der Menge von Transactionen, die abcde enthalten

Algorithmus FP-growth Routine: insert_tree([p P],T)! Input: D eine Transaktionsdatenbank, smin ein Schwellwert der Häufigkeit! Wenn T ein Kind N hat mit N.item_name = p.item_name dann erhöhe Häufigkeit von N +1.! Scan von D, Erstellen der Menge F häufiger items und ihrer Häufigkeiten, Ordnen von F in absteigender Häufigkeit.! Wurzel des FP Trees ist Null. Für jede Transaktion Trans in D:! nach Häufigkeit gemäß F geordnete items in Trans werden zur Liste [p P], wobei p das erste item und P die restlichen sind. insert_tree([p P],T)! FP-growth(FP_tree, null)! Sonst bilde neuen Knoten N mit Häufigkeit = 1 direkt unter T und füge Knotenverweise zu den Knoten i mit dem selben i.item_name ein.! Solange P nicht ist, insert_tree(p,n). 25 26 FP-growth(Tree, a)! Wenn Tree ein einziger Pfad P ist,! dann generiere für jede Kombination " von Knoten in P Muster "#! mit support = min { support eines items in " }.! Sonst für jedes a i in header von Tree! generiere Muster " = a i #! mit support = a i.support;! konstruiere Conditional Pattern Base von " und daraus den Conditional FP-Tree von " : Tree"! Wenn Tree" noch nicht, dann FP-growth(Tree", ") Wie schnell ist FP-growth?! Empirische Performanzanalysen zeigten, dass FP-growth etwa eine Größenordnung schneller ist als Apriori! Begründung! Keine Kandidatengenerierung, keine Kandidatentests! Wesentlich kompaktere Datenstruktur! Keine wiederholten Datenbankscans! Basisoperationen sind Zählen und Aufbau der FP -Trees! EINFACH rekursiv bis leer 27 28

FP-growth vs. Apriori: Einfluss von s min Was wissen wir jetzt? Run time(sec.) 100 90 80 70 60 50 40 30 D1 FP-grow th runtime D1 Apriori runtime Datensatz T25I20D10K! FP-growth als Alternative zu Apriori! Schneller, weil keine Kandidaten generiert werden! Kompaktes Speichern! Basisoperation ist einfach Zählen! Der FP-Tree gibt Präfixbäume für ein Suffix an 20 10 0 0 0.5 1 1.5 2 2.5 3 Support threshold(%)! Die Ordnungsrelation ist die Häufigkeit der Items! Der Baum wird vom häufigsten zum seltensten gebaut 29 30