Data Mining Praktikum - Wintersemester 2019/20 - Abteilung Datenbanken Leipzig

 
WEITER LESEN
Data Mining Praktikum - Wintersemester 2019/20 - Abteilung Datenbanken Leipzig
Data Mining

    Praktikum

    Wintersemester 2019/20

    Abteilung Datenbanken, Universität Leipzig
    http://dbs.uni-leipzig.de
Data Mining Praktikum                            1
Data Mining Praktikum - Wintersemester 2019/20 - Abteilung Datenbanken Leipzig
Einführung
• Implementierung von Data-Mining-Algorithmen mit Java und Spark

• Begleitend zur Vorlesung “Data Mining”

• Einschränkungen:
      – Verwendung von Apache Spark
      – Schreiben der Programme in Java (nicht Scala, Python, R, oder SQL)
      – Umsetzung der Algorithmen mit RDDs (nicht DataFrames oder Datasets)

• Durchführung in Gruppen zu je 2 Studierenden
• Praktikumsleistung: 3 Testate
      – Testat 1: bis 29. November 2019
      – Testat 2: bis 31. Januar 2020
      – Testat 3: bis 31. März 2020
Wichtige Informationen: https://dbs.uni-leipzig.de/stud/2019ws/dwhdmprak
Data Mining Praktikum                                                         2
Themen
• K-Means Clustering
      – Gruppierung von Datenpunkte in Cluster
            • Mitglieder eines Cluster haben geringe paarweise Distanz
            • Mitglieder verschiedener Cluster haben hohe paarweise Distanz
      – Beispiele
            • Gruppierung von Musikalben nach Käufern
            • Gruppierung von Dokumenten nach Thema
            • Segmentierung von Bildern

• Dimensionsreduktion
      – Datenpunkte eines
        D-dimensionalen Raumes liegen
        vorrangig in der Nähe eines
        d-dimensionalen Unterraumes
      – Reduzierung der Punkte auf
        deren Projektionen im Unterraum
Data Mining Praktikum                                                         3
Themen
• Empfehlungssysteme                                  Avatar    LotR    Matrix   Pirates
      – Schätzung unbekannter Bewertungen    Alice    10                2
      – Verschiedene Herangehensweisen       Bob                5                3
            •     Kollaboratives Filtern     Carol    1                 5
            •     Latentes Variablenmodell
                                             David                               4

•      Assoziationsregeln

        Warenkörbe
        Brot, Cola, Milch
        Milch, Windeln                               Assoziationsregeln:
        Bier, Cola, Windeln, Milch                        {Milch} → {Cola}
                                                          {Windeln, Milch} → {Bier}
        Bier, Brot, Windeln, Milch
        Cola, Windeln, Milch, Bier

Data Mining Praktikum                                                                 4
Themen
• MinHashing & LSH
      – Finde ähnliche Paare in einer riesigen Menge von hochdimensionalen Daten
      – Berechnung in linearer statt quadratischer Zeit
                                                          Lorem ipsum dolor sit amet, consectetur
                                                             Lorem ipsum
                                                          adipiscing          dolor
                                                                      elit, sed   do sit   amet, consectetur
                                                                                       eiusmod      tempor
                                                                Lorem
                                                             adipiscing
                                                          incididunt    ipsum
                                                                     ut labore    dolor
                                                                          elit, sedet do   sit amet,
                                                                                           eiusmod
                                                                                       dolore    magna  consectetur
                                                                                                        tempor
                                                                                                            aliqua.
           Ut enim ad minim veniam, quis nostrud                   Lorem    ipsum      dolor   sit amet,    consectetur
                                                                adipiscing
                                                             incididunt       elit, sed
                                                                         ut labore     et do   eiusmod
                                                                                           dolore    magna  tempor
                                                                                                               aliqua.
           exercitation ullamco laboris nisi ut aliquip               Lorem
                                                                   adipiscing   ipsum
                                                                                  elit, seddolor
                                                                                               do  sit amet,
                                                                                                   eiusmod      consectetur
                                                                                                                tempor
                                                                incididunt   ut
                                                          Ut enim adadipiscing
                                                                       minim     labore
                                                                                 veniam,   et  dolore
                                                                                              quis       magna
                                                                                                    nostrud        aliqua.
           ex ea commodo consequat.                                       Lorem
                                                                   incididunt    ut  ipsum
                                                                                      elit, sed
                                                                                     labore    dolor
                                                                                               et  do  sit amet,
                                                                                                       eiusmod
                                                                                                   dolore    magna  consectetur
                                                                                                                    tempor
                                                                                                                       aliqua.
                                                             Ut enim ad
                                                          exercitation     minim
                                                                        ullamco
                                                                          adipiscing veniam,
                                                                                    laboris       quis
                                                                                               nisi
                                                                                          elit, sed  ut nostrud
                                                                                                        aliquip
                                                                                                       do  eiusmod      tempor
                                                                      incididunt      ut labore    et  dolore    magna     aliqua.
           Lorem ipsum dolor sit amet, consectetur            eaUt enim ad
                                                          ex exercitation
                                                                 commodo       minim laboris
                                                                            ullamco
                                                                               consequat.
                                                                          incididunt
                                                                                         veniam,nisi
                                                                                          ut labore
                                                                                                     quis
                                                                                                       et
                                                                                                            nostrud
                                                                                                         utdolore
                                                                                                            aliquipmagna aliqua.
           adipiscing elit, sed do eiusmod tempor                eaUt enim ad
                                                             ex exercitation
                                                                    commodo        minim laboris
                                                                                ullamco
                                                                                   consequat.veniam,nisi quisut nostrud
                                                                                                                aliquip
                                                                      Ut   enim
                                                                   exercitation    ad   minim
                                                                                    ullamco
                                                                ex ea commodo consequat.          veniam,
                                                                                                 laboris     quis
                                                                                                           nisi  ut nostrud
                                                                                                                    aliquip
           incididunt ut labore et dolore magna aliqua.                   Ut   enim
                                                                      exercitation     ad   minim
                                                                                         ullamco
                                                                   ex ea commodo consequat.          veniam,
                                                                                                    laboris      quis
                                                                                                               nisi  ut nostrud
                                                                                                                        aliquip
                                                                          exercitation       ullamco
                                                                      ex ea commodo consequat.          laboris   nisi   ut aliquip
                                                                          ex ea commodo consequat.

• Supervised Machine Learning                                    Age              Male             Class Survived
      – Auffinden eines möglichst akkuraten                      Child            True             1               Yes
        Modells zur Vorhersage eines Attributs
                                                                 Adult            True             2               No
      – Logistische Regression, SVM
                                                                 Adult            False            1               Yes
      – Entscheidungsbäume und Random Forests
                                                                 Child            True             3               No
                                                                 …                …                …               …
Data Mining Praktikum                                                                                                                 5
Themen
• Analyse von Graphen
      – Soziales Netzwerk: Empfehlungen
        von Freunden
      – PageRank: Wichtigkeit von Webseiten
        für die Reihenfolge von Suchergebnissen

• Datenströme
      – Stetiges Erheben von Daten (z.B. Sensoren, Interaktionen im WWW)
      – Beispiel: Zählen von Wörtern
            • Beschränkung auf die neuesten N Elemente
            • Exponentially Decaying Window

                qwertyuiopasdfghjklzxcvbnm

Data Mining Praktikum                                                      6
Einführung zu Spark
• Einschränkungen von MapReduce:
      – Schwierige Programmierung: Viele Probleme sind nicht (so einfach) als MapReduce-
        Prozedur beschreibbar
      – Oft müssen mehrere MapReduce-Schritte kombiniert werden
      – Leistungsengpässe: Speicherung auf Festplatte ist wesentlich langsamer als die
        Arbeit im Hauptspeicher

• Erweiterung: Workflow Systeme
      – Verteilte Verarbeitung
      – Weitere Operationen neben
        Map und Reduce
      – Azyklisches Datenfluss-Netzwerk
      – Effiziente Verarbeitung von Daten durch
        Vermeidung des Speicherns von
        Zwischenergebnissen auf Festplatte
• Beispiele: Spark, Flink, TensorFlow
Data Mining Praktikum                                                                7
Spark
• Datenstruktur: Resilient Distributed Dataset (RDD)
      – Datenmenge aus Objekten eines Types (z.B. String, Menge, Schlüssel-Wert-Paar)
      – Repliziert und verteilt über Cluster
      – Unveränderbar
• RDDs werden über Hadoop geladen oder aus einer anderen RDD erstellt

• Transformationen: Umwandlung eines RDD in eine neue RDD
      – z.B. map, flatMap, filter, join, groupByKey, …
      – Lazy Evaluation: Keine Berechnung

• Aktionen: Berechnung eines Wertes oder Exportierung des RDD
      – z.B. count, take, collect, reduce, saveAsTextFile, …
      – Aktionen erzwingen Berechnungen und geben Werte aus bzw. exportieren Daten

Data Mining Praktikum                                                                8
Spark: map()
Anwendung einer Funktion auf jedes Element einer RDD und Rückgabe
einer neuen RDD mit den Ergebnissen als Elemente

JavaRDD lines = sc.textFile(args[0]);

JavaRDD wordsArrays = lines
     .map(line -> line.split(" "));

JavaRDD numbers = wordsArrays
     .map(wordsArray -> wordsArray.length);

// nur eine Zeile:
JavaRDD numbers = sc.textFile(args[0])
     .map(line -> line.split(" "))
     .map(wordsArray -> parts.length);
Data Mining Praktikum                                               9
Spark: flatMap()
Anwendung wie map(), doch jedes Element kann auf eine Menge von neuen
Elementen abgebildet werden

JavaRDD lines = sc.textFile(args[0]);

JavaRDD words = lines
     .flatMap(line ->
     Arrays.asList(line.split(" ")).iterator());

// Action:
int numberOfWords = words.count()

Data Mining Praktikum                                              10
Spark: mapToPair()
Anwendung einer Funktion auf jedes Element einer RDD und Rückgabe
einer neuen PairRDD mit den Ergebnissen als Elemente

JavaPairRDD pairs = words
     .mapToPair(w -> new Tuple2(w, 1));

• PairRDD ist RDD aus Schlüssel-Wert-Paaren
• Spark bietet für PairRDDs einige zusätzliche Funktionen an:
      –   groupByKey()
      –   reduceByKey()
      –   sortByKey()
      –   join()
      –   cogroup()
      –   mapValues()
      –   …

Data Mining Praktikum                                               11
Spark: PairRDD

JavaPairRDD grouped =
     pairs.groupByKey();

JavaPairRDD counts = pairs
     .reduceByKey((n1, n2) -> n1 + n2);

JavaPairRDD wordLength = words
     .distinct()
     .mapToPair(w -> new Tuple2(w, w.length()));

JavaPairRDD res =
     wordLength.join(counts);

Data Mining Praktikum                              12
Spark
• Download und Dokumentation:
                 https://spark.apache.org/
• Bibliotheken:

• Praktische Einführung und Aufgaben des Praktikums:
   https://git.informatik.uni-leipzig.de/dbs/dataminingpraktikum
Data Mining Praktikum                                              13
Sie können auch lesen