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

Ähnliche Dokumente
Algorithms for Pattern Mining AprioriTID. Stefan George, Felix Leupold

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

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

Kapitel 11: Association Rules

Kapitel 11: Association Rules

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

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Datenanalyse mit Data Mining

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

Data Warehousing und Data Mining

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

6.6 Vorlesung: Von OLAP zu Mining

4.2 Constraints für Assoziationsregeln

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

Kapitel 7: Assoziationsregeln

Kapitel 7: Assoziationsregeln

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

Probabilistische Ansätze in der Assoziationsanalyse

Kapitel 8: Assoziationsregeln

Kapitel 8: Assoziationsregeln

Ermittlung von Assoziationsregeln aus großen Datenmengen. Zielsetzung

Lernen von Assoziationsregeln

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

Parallele Rechenmodelle

Maschinelles Lernen: Symbolische Ansätze

INTELLIGENTE DATENANALYSE IN MATLAB

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

Data Mining auf Datenströmen Andreas M. Weiner

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

Nebenläufige Programme mit Python

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

Mining top-k frequent itemsets from data streams

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

C-to-CUDA-Compiler. Johannes Kölsch. October 29, 2012

Cilk Sprache für Parallelprogrammierung. IPD Snelting, Lehrstuhl für Programmierparadigmen

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

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

4. Assoziationsregeln

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

Parallel Computing in.net

Multi- und Many-Core

Apriori-Algorithmus zur Entdeckung von Assoziationsregeln

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Large-scale Incremental Processing Using Distributed Transactions and Notifications

Kapitel 13: Pattern Mining unter Constraints

Intel Thread Checker

LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610

Vorlesung. Datenschutz und Privatheit in vernetzten Informationssystemen

Graph Mining. Discovering Frequent Subgraphs Discovering Frequent Geometric Subgraphs Angela Eigenstetter und Christian Wirth

Assoziationsmining. Datalab Brown-Bag-Seminar. Thoralf Mildenberger

Data Mining. Informationssysteme, Sommersemester 2017

Vorlesung Wissensentdeckung

Vorlesung Wissensentdeckung

Häufige Mengen ohne Kandidatengenerierung

Motivation (GP)GPU CUDA Zusammenfassung. CUDA und Python. Christian Wilms. Integriertes Seminar Projekt Bildverarbeitung

Formale Begriffsanalyse

Erkennung Sequenzieller Muster Algorithmen und Anwendungen

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

Seminar Map/Reduce Algorithms on Hadoop. Topics. Alex, Christoph

Formale Begriffsanalyse. Teil 2: Assoziationsregeln und FBA Titanic Algorithmus Begriffliches Skalieren ( = quantitative Assoziationsregeln)

Formale Begriffsanalyse

Vorlesung Wissensentdeckung

Gliederung. 1. Einleitung (1) 1. Einleitung (2) On detecting differences between groups

VII.3 Assoziationsregeln

Mining conjunctive sequential patterns

2 Rechnerarchitekturen

Seminar: Multi-Core Architectures and Programming

Data Mining und Statistik: Gemeinsamkeiten und Unterschiede. Daniel Meschenmoser

Ist die Standard Edition noch einsetzbar? Dierk Lenz DOAG 2015 Konferenz

Entwurfsmuster und Frameworks Singleton

Performance Engineering: Forschung und Dienstleistung für HPC-Kunden. Dirk Schmidl

Beispielvortrag: HPCG auf Intel Haswell-EP

PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

Tutorium Softwaretechnik I

Data Mining in der Cloud

MSDN Webcast: Parallelprogrammierung mit der Task Parallel Library für.net (Teil 1) Presenter: Bernd Marquardt

CAS coole Arbeitsumgebung für SAS Programme

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Profiling in Python. Seminar: Effiziente Programmierung. Jan Pohlmann. November Jan Pohlmann Profiling in Python November / 32

Approximate Frequency Counts over Data Streams

Paralleler Cuckoo-Filter. Seminar: Implementierungstechniken für Hauptspeicherdatenbanksysteme Jeremias Neth München, 21.

PostgreSQL auf vielen CPUs. Hans-Jürgen Schönig Hans-Jürgen Schönig

Die IBM Netezza Architektur für fortgeschrittene Analysen

Evaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick

Tobias Flohre / Dennis Schulte codecentric AG. Spring Batch Performance und Skalierbarkeit

Algorithmische Methoden zur Netzwerkanalyse

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

Unüberwachtes Lernen: Clusteranalyse und Assoziationsregeln

5. Assoziationsregeln

Memory Models Frederik Zipp

Was ist Reference Counting Implementierung. Ende. Reference Counting. Kevin Köster. Uni Hamburg. 31. März Kevin Köster Reference Counting 1/58

Multi-threaded Programming with Cilk

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

Untersuchungen zur effizienten Implementierung eines mathematischen Algorithmus in einem FPGA am Beispiel eines Sudoku-Lösers

Transkript:

Apriori Algortihmus Endpräsentation Stefan George, Felix Leupold

Gliederung 2 Wiederholung Apriori Erweiterung: Parallelisierung Parallele Programmierung in Python Parallelisierungszenarien Implementierung Ergebnisse/Benchmarks Usecase Lift Conviction Ergebnisse

Wiederholung Apriori 3 Algorithmus zum Auffinden von Assoziationsregeln Wichtige Parameter: Support und Confidence Apriori Überlegung: Wenn eine Teilmenge einer Menge M klein ist, dann ist die Menge M auch auf jeden Fall klein Kandidatengenerierung iterativ: Join und Prune Regeln aus Itemsets mit ausreichend Support generieren sup( L) A ( L A) > sup( A) minconf

Motivation für Parallelisierung 4

Parallelisierung in Python 5 Multiprocessing vs. Multithreading Threads haben shared memory Deutlich mehr overhead bei Context Switch zwischen Prozessen Global Interpreter Lock in Python Nur ein Thread kann gleichzeitig Bytecode ausführen Keine Parallelisierung bei CPU lastigem Code Für uns kommt nur Multiprocessing in Frage

Parallelisierungsszenarien (1/3) 6 Apriori.py T candidates Transactions

Parallelisierungsszenarien (1/3) 7 Apriori.py 0 1 1 T candidates Transactions Process 1 Process 2 Process n

Analyse (1/3) 8 Kein Initialisierungsaufwand Datenübertragung in Schritt k: D * Ck Ergebnisgröße: Ck 0 5Mio * 400 400 Gesamtkosten = k ( D + 1) Ck 2Mrd Parallelisierung muss grob granularer sein.

Parallelisierungsszenarien (2/3) 9 Apriori.py T T T Transactions Process 1 Process 2 Process n

Parallelisierungsszenarien (2/3) 10 Apriori.py candidates Process 1 Process 2 Process n T1 T2 Tn

Parallelisierungsszenarien (2/3) 11 Apriori.py Process 1 Process 2 Process n T1 T2 T2

Analyse (2/3) 12 Initialisierungsaufwand: D Aufwand in Schritt k: n * Ck Ergebnisgröße: n * Ck 5Mio 4 * 400 4 * 400 Gesamtkosten: + k D 2n Ck 5Mio

Parallelisierungsszenarien (3/3) 13 Apriori.py T Transactions Process 1 Process 2 Process n

Parallelisierungsszenarien (3/3) 14 Apriori.py candidates Process 1 Process 2 Process n T T T

Parallelisierungsszenarien (3/3) 15 Apriori.py Process 1 Process 2 Process n T T T

Analyse (3/3) 16 Initialisierungsaufwand: n * D Aufwand in Schritt k: Ck Ergebnisgröße: Ck 4 * 5Mio 400 400 Gesamtkosten: n D + k k 2 C 20Mio

Theorie vs. Praxis 17 10000 Execution time (sec) 1000 100 10 1 Kern 2 Kerne 4 Kerne 1 Embarassingly Parallel Tansaction Chunks Candidate Chunk k ( D + 1) Ck + k D 2n Ck n D + k k 2 C

Implementierung (1) 18 Map/Reduce Map(candidates, transactions) list(candidate,count) Reduce(candidate, list (counts)) list(candidates)

Implementierung (2) 19 Apriori.py Process 1 Process 2 Process n T T T Update der Transaktionen Würde Rückübertragung aller Transaktionen benötigen Daher nicht mehr AprioriTID sondern Apriori

Fazit & Ideas 20 Parallelisierung in anderen Programmiersprachen könnte mit Threads implementiert werden Weniger Kommunikationsoverhead Geringere Context Switch Kosten Aber ggf. Wartezeiten wegen locking Parallelisierung auf Hadoop Hoher Data Parallelism CUDA/OpenCL

Datensets 21 Anzahl der Elemente 120000000 100000000 80000000 60000000 40000000 20000000 0 Anzahl der Transaktionen 1200000 1000000 800000 600000 400000 200000 0 Facebook Netflix Health Twitter Anzahl der Elemente/ Transaktion 80 70 60 50 40 30 20 10 0 Facebook Netflix Health Twitter

Benchmark (Netflix) 22 D = 200.000 AVG( T ) = 52,6 N = 10.232.001 40% speedup Zeit (s) 1000 900 800 700 600 500 400 300 200 100 Hardware: Core i7-2600 Quad-Core 16GB RAM 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Anzahl der Kernen

Benchmark (Twitter) 23 D = 200.000 AVG( T ) = 2,4 N = 480.000 40% speedup Zeit (s) 60 50 40 30 20 10 Hardware: Core i7-2600 Quad-Core 16GB RAM 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Anzahl der Kerne

Auffinden interessanter Regeln 24 Pirates of the Caribbean -> LoR II Anzahl an Bewertungen pro Film 120000 Anzahl an Bewertungen 100000 80000 60000 40000 20000 0 1 457 913 1369 1825 2281 2737 3193 3649 4105 4561 5017 5473 5929 6385 6841 7297 7753 8209 8665 9121 9577 10033 10489 10945 11401 11857 12313 12769 13225 13681 14137 14593 15049 15505 15961 16417 16873 17329 Film ID

Lift 25 lift(x! Y ) = sup(x!y ) sup(x)* sup(y ) 5.78% lift( ) = = 7.2%*18% 4.46 Errechnete Werte: 3,7 7,5

Conviction 26 conv( X Y ) = 1 sup( Y ) 1 conf ( X Y ) 1 0.18 conv(~~~~~~~~~ ~~~) = = 3.55 1 0.77 Errechnete Werte: 3,5-25.32

Ergebnisse 27 Support: 5,3 % Confidence: 96,5 % Lift: 7,5 Conviction: 25,3 Support: 5% Confidence: 75% 746 Regeln

Einfluss von Lift und Conviction 28 800 700 600 Regel Position 500 400 300 Lift Conviction Confidence 200 100 0 0 100 200 300 400 500 600 700 800 Regel ID

Vergleich zu IMDb 29 Stichprobe (N=30): 21/30 = 70% stimmen mit IMDb überein Nachfolger Gleiches Genre

Quellen 30 Sergey Brin, Rajeev Motwani, Jeffrey D. Ullman, and Shalom Tsur. Dynamic itemset counting and implication rules for market basket data. P. Becuzzi, M. Coppola and M. Vanneschi. Mining of Association Rules in Very Large Databases: A Structured Parallel Approach Ali Tarhini: Parallel Apriori algorithm for frequent pattern mining. http://alitarhini.wordpress.com/2011/02/26/parallel-apriorialgorithm-for-frequent-pattern-mining/ [Stand 3. Juli 2012] Anuradha.T, Satya Pasad R, S.N.Tirumalarao. Parallelizing Apriori on Dual Core using OpenMP. International Journal of Computer Applications, Volume 43 R. Agrawal, R. Srikant: "Fast Algorithms for Mining Association Rules", Proc. of the 20th Int'l Conference on Very Large Databases, Santiago, Chile, Sept. 1994