+ All Categories
Home > Documents > Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl...

Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl...

Date post: 15-Aug-2019
Category:
Upload: trancong
View: 217 times
Download: 0 times
Share this document with a friend
17
Hochschule Bremen Flughafenallee 10, 28199 Bremen Fakult¨ at 4 - Elektrotechnik und Informatik IS Medieninformatik B. Sc. 3. Fachsemester Bachelorprojekt Data Mining Nicole K¨ upke & Dr.-Ing. Pierre Taner Kirisci Dokumentation Ergebnisse der Konzeptionsphase Studenten: Liam Holthusen, Ole Dawidzinski, Jannik Horstick Matrikelnummer: 5016607, 8009228, 5015377 E-Mail: [email protected] [email protected] [email protected] Semester: Wintersemester 2018-2019 Abgabetermin: 21. Februar 2019
Transcript
Page 1: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Hochschule BremenFlughafenallee 10, 28199 BremenFakultat 4 - Elektrotechnik und InformatikIS Medieninformatik B. Sc. 3. Fachsemester

BachelorprojektData Mining

Nicole Kupke & Dr.-Ing. Pierre Taner Kirisci

DokumentationErgebnisse der Konzeptionsphase

Studenten: Liam Holthusen, Ole Dawidzinski, Jannik Horstick

Matrikelnummer: 5016607, 8009228, 5015377

E-Mail: [email protected]

[email protected]

[email protected]

Semester: Wintersemester 2018-2019Abgabetermin: 21. Februar 2019

Page 2: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Inhaltsverzeichnis

1 Ehrenwortliche Erklarung 3

2 Keywords 3

3 Abstract 3

4 Einleitung 4

5 Grundlagen 45.1 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45.2 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45.3 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

6 Motivation - Ideenentwicklung 46.1 Exkursion Karlsruhe . . . . . . . . . . . . . . . . . . . . . . . . . 46.2 Design Thinking . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

7 Ziel der Arbeit 67.1 Was soll umgesetzt werden? . . . . . . . . . . . . . . . . . . . . . 6

8 Methodik und Vorgehensweise 78.1 Business Understanding . . . . . . . . . . . . . . . . . . . . . . . 78.2 Data Understanding / Acquisition . . . . . . . . . . . . . . . . . 78.3 Data Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . 78.4 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

8.4.1 Assoziationsanalyse . . . . . . . . . . . . . . . . . . . . . 88.4.2 Clusteranalyse . . . . . . . . . . . . . . . . . . . . . . . . 88.4.3 Sequenzmusteranalyse . . . . . . . . . . . . . . . . . . . . 9

8.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108.6 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

9 Stand der Technik 119.1 Tools und Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . 11

9.1.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119.1.2 Pandas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119.1.3 Scikit-learn . . . . . . . . . . . . . . . . . . . . . . . . . . 119.1.4 Matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . 119.1.5 SQLAlchemy . . . . . . . . . . . . . . . . . . . . . . . . . 119.1.6 Bokeh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129.1.7 Trello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129.1.8 Google BigQuery . . . . . . . . . . . . . . . . . . . . . . . 12

9.2 Testprojekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129.2.1 Evaluierung des Testprojekts . . . . . . . . . . . . . . . . 13

10 Konzeption 1410.1 Arbeitspakete und Teilschritte . . . . . . . . . . . . . . . . . . . . 1410.2 Potentielle Risiken . . . . . . . . . . . . . . . . . . . . . . . . . . 1410.3 Projektmanagement und Meilensteine . . . . . . . . . . . . . . . 15

11 Evaluierung 15

1

Page 3: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

12 Zusammenfassung und Ausblick 15

13 Quellenverzeichnis 1613.1 Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

14 Quellen 16

15 Anhang 16

Bilderverzeichnis

1 Inspiration Karlsruhe 1 . . . . . . . . . . . . . . . . . . . . . . . 52 Inspiration Karlsruhe 2 . . . . . . . . . . . . . . . . . . . . . . . 53 Inspiration Karlsruhe 2 (großere Ansicht) . . . . . . . . . . . . . 54 Design Thinking Prototyp . . . . . . . . . . . . . . . . . . . . . . 65 Apriori-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 86 Clusteranalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Frequent-Pattern Tree . . . . . . . . . . . . . . . . . . . . . . . . 98 Interaktive Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 SQL-Query in bigQuery . . . . . . . . . . . . . . . . . . . . . . . 1210 Top Zehn Programmiersprachen . . . . . . . . . . . . . . . . . . . 13

List of Tables

1 Arbeitspakete und Teilschritte . . . . . . . . . . . . . . . . . . . . 142 Potentielle Risiken . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Meilensteine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Abkurzungsverzeichnis

FP-Tree Frequent Pattern Tree

SVM Support Vector Machine

DB Datenbank / Database

EMA Expectation-Maximization-Algorithmus

SQL Structured Query Language

API Application Programming Interface

2

Page 4: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

1 Ehrenwortliche Erklarung

Wir erklaren, dass wir die vorliegende Projektarbeit selbst verfasst und dazu keine anderen als dieangefuhrten Behelfe verwendet, die Autorenschaft eines Textes nicht angemaßt und wissenschaftli-che Texte oder Daten nicht unbefugt verwertet haben.

2 Keywords

Data-Mining, Clusteranalyse, Assoziationsanalyse, Modeling, Apriori-Algorithmus, K-Means, EM-Clustering, DBSCAN, SVM, Sequenzmusteranalyse, FP-Growth, Deployment, Selektion, Integrati-on, Visualisierungsmethoden, Python, Pandas, Scikit-learn, Matplotlib, SQLAlchemy, Bokeh, Trel-lo, Google BigQuerry, SQL, Google Storage, GitHub, API, Data Unterstanding, Data Preparation,Data Understanding, Acquisition, Business Understanding, OpenCodes

3 Abstract

Dies ist der erste Teil des Bachelorprojekts Open Codes innerhalb der Gruppe Data-Mining. Zielder ersten Phase des Projekts ist es, ein Konzept fur die Entwicklungsphase zum ProjektthemaData-Mining zu erarbeiten. Dafur wurde ein Leitsatz fur das Modul entwickelt, welcher die Rah-menbedingung des ubergeordneten Projekts festlegt.

”Wie konnen wir Besuchern/Interessenten ein

interaktives Erlebnis bieten, um technische Zusammenhange zu verstehen und Erkenntnisse zugewinnen?“ Mithilfe des Data-Minings wollen wir als eine von drei Gruppen eine Losung dafurentwickeln.

3

Page 5: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

4 Einleitung

Das Bachelorprojekt Open Codes der Hochschule Bremen hat sich das Ziel gesetzt technische Zu-sammenhange in interaktiven Erlebnissen einzubetten, damit Besucher der Hochschule, Erkennt-nisse gewinnen und die Zusammenhange besser verstehen. Hier haben wir uns fur den Prozessdes Data-Mining entschieden. Um die Zusammenhange der Technik bzw. des Prozesses – Data-Mining – darzustellen haben wir uns dazu entschieden ein Beispielprojekt umzusetzten. Wahrenddes gesamten Projekts werden wir notwendige Arbeitsschritte dokumentieren und aufbereiten, da-mit Interessenten einen Einblick in diese Technik erhalten und den Prozess verstehen und somit eintieferes Verstandnis und gegenenfalls Interesse fur diese zukunftsorientierte Technologie entwickeln.

5 Grundlagen

5.1 GitHub

GitHub ist ein Webservice, welcher eine Oberflache zur Speicherung und Versionierung von Software-Entwicklungsprojekten bereitstellt. Entwickler haben daruber die Moglichkeit, den Quellcode vonProjekten zu speichern und mit mehreren Teilnehmern zu editieren. Dabei wird das Versionierungs-system Git verwendet, um das Uberschreiben von erarbeitetem Code zu vermeiden. Die Projektesind in so genannten Repositorys gespeichert, welche zum Editieren auf den lokalen Rechner ”ge-klont”werden konnen.

5.2 SQL

SQL ist eine Datenbanksprache zum definieren, bearbeiten, und abfragen von Datenbestanden. DieSyntax der Sprache ist sehr leicht zu erlernen, da sie auf der relationalen Algebra basiert und an dieenglische Umgangssprache angelehnt ist. Um einen Datensatz mit Studenten zu analysieren konntedie Abfrage, auch Query genannt, lauten :

1 SELECT * FROM Student;

Was soviel bedeutet wie:”Gebe alle Zeilen und Spalten des Datensatzes Student aus.“

5.3 API

Eine API oder Programmierschnittstelle ist ein Programmteil, welcher von Softwaresystemen oderProgrammen als Anbindung an das System zur Verfugung gestellt wird. Die Schnittstelle kann denZugriff auf Datenbanken, Hardware oder andere Komponenten ermoglichen. Haufig werden APIseingesetzt, um Entwicklern den Zugang zu Daten zu ermoglichen, welche von den internen Systemender API generiert werden.

6 Motivation - Ideenentwicklung

6.1 Exkursion Karlsruhe

Die Ausstellung Open Codes in Karlsruhe war sehr hilfreich, um sich bei der Ideenfindung in-sprieren zu lassen. Es gab dort viele interessante Projekte aus unterschiedlichen Bereichen. Erstim Nachhinein viel uns auf, dass wir uns schon dort fur die Analyse von Kausalitaten zwischenunabhangig wirkenden Datensatzen interessierten. Dies zeigt zum Beispiel folgendes Projekt, beidem Zusammenhange zwischen Aktienkursen, Astronomie und Wetterdaten hergestellt wurden.

4

Page 6: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Abbildung 1: Inspiration Karlsruhe 1

Abbildung 2: Inspiration Karlsruhe 2

Abbildung 3: Inspiration Karlsruhe 2 (großere Ansicht)

5

Page 7: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

6.2 Design Thinking

Beim Design Thinking wurde kreativ gearbeitet, um einen Leitsatz zu entwickeln. Dabei wurdenPersonas charakterisiert und Prototypen entwickelt, die dabei halfen neue Ideen zu generieren.

Abbildung 4: Design Thinking Prototyp

Am Ende konnte ein Leitsatz generiert werden, welcher die Rahmenbedingungen des Projekts cha-rakterisiert.

”Wie konnen wir Besuchern/Interessenten ein interaktives Erlebnis bieten, technische Zusammenhange

zu verstehen und Erkenntnisse zu gewinnen?“

7 Ziel der Arbeit

Das Ziel dieser Arbeit ist es, eine Antwort auf die Frage”Wie konnen wir Besuchern/Interessenten

ein interaktives Erlebnis bieten, technische Zusammenhange zu verstehen und Erkenntnisse zugewinnen?“, zu finden. Durch die experimentelle Herangehensweise versuchen wir den Prozess desData-Mining zu visualisieren und verstandlich zu ubermitteln.

7.1 Was soll umgesetzt werden?

Ziel ist es den Data-Driven Approach anhand eines Beispielprojektes verstandlich zu machen und zudemonstrieren, welche Moglichkeiten und Techniken eingesetzt werden konnen, um einen Mehrwertaus Daten zu generieren. Zu diesem Zweck werden wir Techniken des Data-Mining verstehen undanwenden. Die gewonnenen Erkenntnisse werden im Anschluss visualisiert. Als Untersuchungsob-jekt wollen wir GitHub nutzen. Die Fragestellung ist:

”Welche Erkenntnisse konnen wir durch die

Analyse von GitHub gewinnen, beziehungsweise ableiten?“

6

Page 8: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

8 Methodik und Vorgehensweise

Bei der Umsetzung werden wir uns weitgehend an den Ansatz des Data-Mining orientieren. DasVorgehen umfasst die folgenden Schritte:

• Business Understanding

• Data Understanding/Acquisition

• Data Preparation

• Modeling

• Evaluation

• Deployment

8.1 Business Understanding

Das Business Understanding dient dem Verstandnis der Domane. In dieser Phase werden wir unsmit den Zielen, Erwartungen und Restriktionen befassen, beziehungsweise verstehen. Das Ziel istes zu definieren, welche Erkenntnisse wir im Rahmen der uns zur Verfugung stehenden Mittel inErfahrung bringen konnen oder was untersucht werden soll.

8.2 Data Understanding / Acquisition

Diese Phase teilt sich in zwei Bereiche auf. Das Beschaffen des Datenbestandes und das Verstehender jeweiligen Daten. Der Zugriff auf die Daten erfolgt uber die GitHub API. Dabei muss zuerstdie API und die zur Verfugung stehenden Daten verstanden und gepruft werden. Uber diese APIwird der Datenbestand aufgebaut. Anschließend werden die Daten gesichtet und ein Konzept zurWeiterarbeitung erarbeitet. Infolgedessen muss bewertet werden, ob und wie die Daten zur Weiter-verarbeitung aufbereitet werden mussen.

Teilschritte dieser Phase

• Definieren, welche Daten genutzt werden sollen und uber welchen Zeitraum

• Zugriff auf die API sicherstellen

• Speicherformat definieren und Datenbestand aufbauen

Als Ergebnis dieser Phase steht der Datenbestand zur Verfugung.

8.3 Data Preparation

Die Kernaufgabe der Data Preparation dient der Aufbereitung des aufgebauten Datenbestandes.Dabei wird bewertet, wie und ob die zur Verfugung stehenden Daten aufbereitet werden mussen.

Mogliche Teilschritte der Data Preparation:

• Zusammenfuhren der Daten

• Fehlerbereinigung

• Sortierung und Aufbereitung

Das Ziel ist es, einen aufbereiteten Datenbestand zu haben, welcher zur direkten Weiterverarbeitunggenutzt werden kann.

7

Page 9: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

8.4 Modeling

Im Modeling erfolgt die Auswahl der jeweiligen Analyse-Methode beziehungsweise Technik. Diesewerden auf die aufgebauten Datenbestande angewendet und angepasst. Das Wichtige ist dabei dieAuswahl des richtigen Algorithmus und die Anpassung der Parameter. Oft konnen bereits kleineAnderungen an den jeweiligen Algorithmen unterschiedliche Ergebnisse liefern, welche dann nichtmehr zu interpretieren sind.

Die fur uns in Frage kommenden Techniken gliedern sich in die folgenden Bereiche auf:

8.4.1 Assoziationsanalyse

Zu der Assoziationsanalyse gehoren alle Verfahren welche Regeln und Korrelationen zwischen ein-zelnen Daten oder Datensatzen aufzeigt. Ziel ist es Beziehungen zwischen verschiedenen Objektendarzustellen. Als Beispiel dient dabei die Warenkorbanalyse.

Techniken:

• Apriori-Algorithmus

Abbildung 5: Apriori-Algorithmus

Der Apriori-Algorithmus wird in der Assozia-tionsanalyse eingesetzt, um Zusammenhangezwischen transaktionsbasierten Datenbankenaufzufinden. Wie schon erwahnt, bietet sichdas Beispiel der Warenkorbanalyse gut an, umden Apriori-Algorithmus anzuwenden. Dabeisind Items die angebotenen Produkte und einEinkauf wird als Transaktion dargestellt. DerAlgorithmus liefert Korrelationen der Form:

Wenn Butter und Mehl zusammen einge-kauft wurden, wurden in 90% der Falle auch Eierdazu gekauft.

8.4.2 Clusteranalyse

Diese Technik gruppiert einzelne Daten eines Datensatzes anhand ahnlicher Eigenschaften. DieseTechnik kommt oft auf Daten zum Einsatz, wo im Vorfeld noch nicht genau geklart ist, wie dieseDaten zusammenhangen. Die durch das Clustering gewonnen Klassen/Gruppen konnen dann imweiteren Verlauf untersucht werden oder stellen an sich ein Ergebnis dar.

8

Page 10: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Abbildung 6: Clusteranalyse

Techniken:

• K-Means

• EM-Clustering

• DBSCAN

• SVM

8.4.3 Sequenzmusteranalyse

In der Sequenzmusteranalyse geht es primar darum, sich wiederholende Muster (Pattern) in zeitli-chen Sequenzen zu erkennen und sichtbar zu machen. Anhand dieser Informationen konnen Trendsoder bestimmte Profile erkannt werden.Techniken:

• FP-Growth

Abbildung 7: Frequent-Pattern Tree

Beim FP-Growth Algorithmus werdenSequenzmuster erstellt, indem die Itemsals Baumdiagramm angeordnet werden.Dabei besitzt jedes Item drei Eigen-schaften. Die eindeutige Item-ID, dieAnzahl von Transaktionen zu seinemKnotenpunkt und eine Verknupfungzum nachsten Knoten.

9

Page 11: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Teilschritte des Modeling:

• Auswahl der jeweiligen Techniken / Algorithmen

• Anpassen der Parameter

Das Ergebnis der Modelingphase ist ein Erkenntnisgewinn. Die Herausforderung dabei ist die In-terpretation der Ergebnisse, da diese mitunter sehr abstrakt sein konnen.

8.5 Evaluation

Durch die Evaluation werden die Erkenntnisse des Modelings uberpruft und das Model eventuellangepasst. Dies dient mehrheitlich dem Zweck, die angewandten Algorithmen und Verfahren zubewerten und anzupassen. Als Folge kann auch ein neues Verfahren herangezogen werden, wennfestgestellt wurde, dass es nicht geeignet ist. Andernfalls erfolgt eine Anpassung der Parameter.

Teilschritte der Evaluation:

• Interpretieren der Ergebnisse

• Anpassen der Parameter

Ziel der Evaluation ist es, die Verfahren soweit anzupassen, dass diese adaquate Ergebnisse liefern.

8.6 Deployment

Im Deployment werden die Ergebnisse der Evaluation visualisiert. Zu diesem Zweck muss die pas-sende Visualisierung in Abhangigkeit der gewonnen Erkenntnisse gewahlt werden. Im Anschlusswird das Model oder die Ergebnisse in die Visualisierung uberfuhrt, um unserer Zielgruppe dieErgebnisse vermitteln zu konnen.

Abbildung 8: Interaktive Karte

10

Page 12: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Teilschritte des Deployments:

• Selektion und Bewertung der darzustellenden Ergebnisse

• Definieren, wie mit der Visualisierung interagiert werden soll

• Auswahl der passenden Visualisierungsmethoden

• Integration

Das Ergebnis beinhaltet eine visuelle Darstellung der gewonnen Erkenntnisse.

9 Stand der Technik

Data-Mining ist ein machtiges Werkzeug zur Herstellung von Kausalitaten in Datenmengen, welchefur den menschlichen Verstand zwar nachvollziehbar, aber nicht generierbar sind. Aus diesem Grundkommt das Data-Mining zunehmend in der Industrie, im Marketing, in der Medizin, im Pfegewesenoder im Finanzsektor zum Einsatz. Um einen Uberblick der aktuellen Werkzeuge, Datensatze undAnwendungen zu erhalten, werden im Folgenden die Tools, gefolgt von einem Testprojekt, erklart:

9.1 Tools und Werkzeuge

9.1.1 Python

Python dient als Programmiersprache wahrend der gesamten Umsetzung. Sie bietet leicht undschnell zu erlernenden Code und bietet eine Vielzahl an Bibliotheken zur Analyse und Anwendungim Data-Mining.

Python wird in allen Phasen, insbesondere im Modeling und bei der Visualisierung zum Einsatzkommen.

9.1.2 Pandas

Pandas ist eine Python Bibliothek und Erweiterung von NumPy. Pandas vereinfacht die Arbeitmit großen Datenmengen und bietet eine Vielzahl von mathematischen Funktionen welche dieVerarbeitung und Analyse erleichtern. Innerhalb dieses Projektes wird insbesondere das PandasDataframe und die CSV-Verarbeitung zum Einsatz kommen.

9.1.3 Scikit-learn

Scikit-learn ist eine freie Software-Bibliothek welche eine Vielzahl an Algorithmen zur Analysebeinhaltet. Scikit-learn wird insbesondere im Modeling zum Einsatz kommen, da sie die Meistenaufgefuhrten Verfahren beinhaltet und umfassend dokumentiert ist.

9.1.4 Matplotlib

Matplotlib ist eine Python-eigene Bibliothek, welche eine einfache Darstellung von Graphen undDaten ermoglicht. Diese wird wahrend des Modeling und der Evaluation zum Einsatz kommen, umdie Ergebnisse grafisch zu interpretieren.

9.1.5 SQLAlchemy

SQLAlchemy ist ein Python Toolkit, welches eine einfache Anbindung und Verwaltung von SQL-Datenbanken bietet. SQLAlchemy wird wahrend der Data Preparation zum Einsatz kommen umden Datenbestand anzulegen und zu verwalten.

11

Page 13: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

9.1.6 Bokeh

Bokeh ist eine interaktive Visualisierungsbibliothek in Python. Durch Bokeh konnen komplexe vi-suelle Anwendungen, auch bei großen Datenmengen, realisiert werden.

Bokeh wird beim Deployment zum Einsatz kommen um die Ergebnisse zu visualisieren und Nutzerndie Moglichkeit zu geben, mit den Daten zu interagieren.

9.1.7 Trello

Trello ist eine web-basierte Projektmanagementplattform. Mit dieser Plattform werden wir wahrendder Durchfuhrung des Projektes arbeiten und unsere Arbeitspakete und Meilensteine verwalten.

9.1.8 Google BigQuery

Google BigQuery ist ein Webservice zur Analyse von großen Datenmengen. Der Dienst ist mit Goo-gle Storage verknuft, wodurch Datensatze direkt in der Infrastruktur des Services zuganglich sind.Große Datensatze von mehreren Terabytes konnen innerhalb von wenigen Sekunden mit Hilfe vonSQL-Querys analysiert werden. Dadurch ist keine externe Enwicklungsumgebung notwendig, wasBigQuery zu einer performanten Umgebung fur Testanalysen, bei denen die Tools und Technikennoch nicht festgelegt sind, macht.

9.2 Testprojekt

Um einen ersten Kontakt mit den Techniken, Datensatzen und Services zu erhalten, wurde einkurzes Testprojekt initiiert. Ziel war es, einen Datensatz des Code-Hosters GitHub zu analysie-ren, sodass im Nachhinein eine Aussage uber die quantitative Nutzung von Programmiersprachengetroffen werden konnte. Um in kurzer Zeit ein aussagekraftiges Ergebnis zu erhalten, wurde derWebservice Google BigQuery verwendet. Der Datensatz des GitHub Repositorys wurde uber Goo-gle Storage bezogen. GitHub stellt eine Vielzahl von Datensatzen zur Verfugung. Darunter aucheinen mit Informationen zu Programmiersprachen von offentlichen Projekten, dessen Sourcecodeauf GitHub gehosted wird. Um die Daten zu analysieren, wird uber SQL-Syntax eine Query erstellt.

Abbildung 9: SQL-Query in bigQuery

12

Page 14: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

Die Ergebnisse konnten als CSV-Datei gespeichert und weiter verwendet werden. Um die DatenGraphisch darzustellen wurde mit Excel eine Grafik erstellt. Aus Grunden der Ubersichtlichkeitwurden nur die zehn meist genutzten Programmiersprachen eingebunden.

Abbildung 10: Top Zehn Programmiersprachen

Die Abbildung zeigt die quantitative Nutzung von Programmiersprachen in offentlich gespeichertenGitHub Repositorys.

9.2.1 Evaluierung des Testprojekts

Das Projekt eignete sich sehr gut, um Erfahrungen mit offentlichen Datenbanken und dessen Ana-lyse zu gewinnen. Die Erkenntnisse konnen in Zukunft bei der Durchfuhrung des ubergeordnetenProjekts gewinnbringend eingesetzt werden. Zum Beispiel bei der Recherche nach Datensatzen oderder Auswertung von extrem großen Datensatzen, welche ohne cloudbasierende Systeme wie GoogleBigQuery nicht moglich waren. Fur die Konzeption und die Risikobewertung der Arbeitspakete undTeilschritte konnten dadurch bessere Ergebnisse erzielt werden, da ein Grundverstandnis erstelltund Probleme im Voraus gelost wurden.

13

Page 15: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

10 Konzeption

10.1 Arbeitspakete und Teilschritte

ID BEZEICHNUNG BESCHREIBUNG1 Business Understanding1.1 Definition Ziele Was kann untersucht werden1.2 Erwartungen Welche Ergebnisse konnen abgeleitet werden1.3 Restriktion Was kann nicht untersucht werden und warum2 Data Understanding/Acquisition

2.1 Daten verstehenDefinieren welche Daten genutzt werden sollen und uberwelchen Zeitraum

2.2 API Zugriff auf API2.3 Datenbestand Speicherformat definieren und Datenbestand aufbauen3 Data Preparation3.1 Daten zusammenfuhren Optional3.2 Fehlerbereinigung Optional3.3 Sortierung / Aufbereitung Optional4 Modeling4.1 Auswahl Techniken Auswahl der jeweiligen Techniken / Algorithmen4.2 Parameter Anpassen der jeweiligen Algorithmen5 Evaluation5.1 Interpretation Interpretieren der Ergebnisse5.2 Anpassen Schritt 4 wiederholen6 Deployment6.1 Bewertung Selektion und Bewertung der darzustellenden Ergebnisse6.2 Interaktion Definieren wie mit der Visualisierung interagiert werden soll6.3 Auswahl Visualisierung Auswahl der passenden Visualisierungsmethode6.4 Integration Entwickeln der fertigen Visualisierung

Tabelle 1: Arbeitspakete und Teilschritte

10.2 Potentielle Risiken

Riskio Kategorie (1-3) Maßnahme

API kann nicht verwendet werden 3Ausweichmaßnahme ist die Nutzungder API von Reddit.

Datenverlust 3Daten in regelmaßigen Intervallensichern und synchronisieren.

Kein Wissen kann generiert werden 2 Untersuchen und ausarbeiten warum.

Mangelndes Fachwissen 2Fokus auf weniger komplexeAlgorithmen. Untersuchen warum

Ausfall eines Gruppenmitglieds 1

Kein Wissensverlust, da bedingtdurch die agile Arbeitsweise alleGruppenmitglieder den gleichenWissenstand haben

Tabelle 2: Potentielle Risiken

14

Page 16: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

10.3 Projektmanagement und Meilensteine

Durch das Erstellen von einzelnen, abgeschlossenen Inkrementen nach jedem Schritt der Durchfuhrung,wird das Projekt mit agilen Methoden durchgefuhrt. Dabei werden die Arbeitspakete als ProduktBacklog gefuhrt und in einzelnen Sprints von ein bis drei Wochen Lange durchgefuhrt. Vor undnach jedem Sprint wird ein Review abgehalten in dem der Aufwand bzw. die Ergebnisse bewertetund die Aufgaben verteilt werden.

Aufgaben, welche nicht innerhalb eines Sprints vollendet werden, werden im nachsten Sprint neubewertet und bearbeitet. Zur Projektsteuerung wird auf das Projektmanagementplattform

”Trello“

zuruckgegriffen. Mithilfe der Plattform werden die Aufgaben des jeweiligen Sprints verwaltet undtransparent gepflegt.

Woche (KW) Bezeichnung Sprint11 Business Understanding 112 Data Understanding/Acquisition 213 Data Understanding/Acquisition 214 Data Understanding/Acquisition 215 Data Preparation 316 Data Preparation 317 Modeling / Evaluation 418 Modeling / Evaluation 419 Deployment 520 Deployment 5

Tabelle 3: Meilensteine

11 Evaluierung

Aus der ersten Phase des Projekt ist ein vollstandiges Konzept entstanden, welches als Fundamentfur die Entwicklungsphase im kommenden Semester dient. Außerdem konnten uber das Beispiel-projekt schon erste Erfahrungen mit dem Thema Data-Mining gesammelt werden, sodass mithilfedieser Erfahrungen ein reibungsloserer Projektablauf ermoglicht wird und Probleme schneller iden-tifiziert und gelost werden.

12 Zusammenfassung und Ausblick

Durch die Erarbeitung und Durchfuhrung des Data Mining anhand der GitHub API haben wirdas Ziel den Prozess an sich darzustellen. Hierbei mochten wir Erkenntnisse aus den Daten derGitHub API erlangen. Aus dem Grund das GitHub die großte Softwarentwicklung-Platform isthaben wir nebenstehend das langfristige Ziel durch die Darstellung der Daten, Lehrbeauftragten undProfessoren, eine Art Inspirationsquelle zu bieten, welche Technologien aktuell sehr viel verwendetwerden. Neben diesem sekundaren Ziel ist unser primares Ziel, Interessenten der Hochschule undinsbesondere Interessenten an dem Studiengang Medieninformatik einen Einblick in die Inhalte desStudium zu bieten. Wir mochten den Prozess des Data-Mining darstellen und der Zielgruppe einenanderen Blickwinkel auf Daten geben und zeigen welche Moglichkeiten bestehen. Die Daten aus derGitHub API sollen dabei der Einstieg sein und Interesse wecken. Neben diesen Daten konnen wir unsvorstellen Data Mining auch auf andere Business Cases anzuwenden und in einem expierimentellenProzess zu analysieren.

15

Page 17: Bachelorprojekt - liamholthusen.comliamholthusen.com/DataMiningGruppenDoku.pdf1 Ehrenw ortliche Erkl arung Wir erkl aren, dass wir die vorliegende Projektarbeit selbst verfasst und

13 Quellenverzeichnis

13.1 Abbildungen

Deployment:https://user-images.githubusercontent.com/13728402/28958933-408f8cc4-78f0-11e7-837f-d910df513be5.png

Clusteranalyse:https://cdn-images-1.medium.com/max/800/0*Jwm3mV92c3qRhqEl.

Apriori-Algorithmus:https://www.sites.google.com/site/getallcodesyouwant/data-mining/apriori-algorithm/img054.jpg?attredirects=0

FP-Tree:https://en.wikibooks.org/wiki/Data\_Mining\_Algorithms\_In\_R/Frequent\_Pattern\_Mining/The\_FP-Growth\_Algorithm#/media/File:FPG\_FIG\_01.jpg

14 Quellen

GitHub:https://de.wikipedia.org/wiki/GitHub (Stand 20.02.19)

SQL:http://www.datenbanken-verstehen.de/sql-tutorial/sql-einfuehrung/ (Stand 20.02.19)

API:https://de.wikipedia.org/wiki/Programmierschnittstelle (Stand 19.02.19)

15 Anhang

Weitere Daten aus dem Testprojekt

http://liamholthusen.com/results.csv

16


Recommended