Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Dieses Buch bietet einen praxisnahen Einstieg in Data Science, angereichert mit interaktiven Elementen, der die Breite der Möglichkeiten der Datenanalyse aufzeigt und tief genug geht, um Vorteile, Nachteile und Risiken zu verstehen, aber dennoch nicht zu tief in die zugrunde liegende Mathematik einsteigt. Es wird nicht nur erklärt, wofür wichtige Begriffe wie Big Data, machinelles Lernen oder Klassifikation stehen, sondern auch anschaulich mit zahlreichen Beispielen aufgezeigt, wie Daten analysiert werden. Ein breiter Überblick über Analysemethoden vermittelt das nötige Wissen, um in eigenen Projekten geeignete Methoden auszuwählen und anzuwenden, um das gewünschte Ergebnis zu erreichen.
Der benötigte Python-Quelltext, der z.B. zur Durchführung von Analysen oder zur Erstellung von Visualisierungen verwendet wird, ist in Form von Jupyter-Notebooks frei verfügbar.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 443
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Dr. Steffen Herbold ist Professor für Methoden und Anwendungen maschinellen Lernens am Institut für Software und Systems Engineering der Technischen Universität Clausthal, wo er die Forschungsgruppe AI Engineering leitet. Zuvor hat er an der Universität Göttingen promoviert und habilitiert und am Karlsruher Institut für Technologie einen Lehrstuhl vertreten. In der Forschung beschäftigt er sich mit der Entwicklung und Qualitätssicherung der Lösung von Problemen durch maschinelles Lernen, z.B. zur effizienteren Softwareentwicklung, der Prognose von Ernteerträgen oder auch der Erkennung von aeroakustischen Geräuschquellen.
Zu diesem Buch – sowie zu vielen weiteren dpunkt.büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus+:
www.dpunkt.plus
Steffen Herbold
Eine interaktive und praktische Einführung
Steffen Herbold
Lektorat: Christa Preisendanz
Lektoratsassistenz: Anja Weimer
Copy-Editing: Ursula Zimpfer, Herrenberg
Layout & Satz: Birgit Bäuerlein
Herstellung: Stefanie Weidner
Umschlaggestaltung: Helmut Kraus, www.exclam.de
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
ISBN:
Print 978-3-86490-862-0
PDF 978-3-96910-618-1
ePub 978-3-96910-619-8
mobi 978-3-96910-620-4
Copyright © 2022 dpunkt.verlag GmbH
Wieblinger Weg 17
69123 Heidelberg
Hinweis:
Dieses Buch wurde auf PEFC-zertifiziertem Papier aus nachhaltiger Waldwirtschaft gedruckt. Der Umwelt zuliebe verzichten wir zusätzlich auf die Einschweißfolie.
Schreiben Sie uns:
Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].
Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.
Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.
Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.
5 4 3 2 1 0
Willkommen beim Data-Science-Crashkurs. Wenn Sie bereits öfter etwas von Big Data, maschinellem Lernen, der künstlichen Intelligenz oder Data Science gehört haben und wissen wollen, welche Methoden sich hinter diesen Begriffen verbergen, sind Sie hier genau richtig. Dieses Buch richtet sich an alle, die mehr über die Möglichkeiten der Datenanalyse lernen wollen, ohne gleich tief in die Theorie oder bestimmte Methoden einzusteigen. Auch wenn Sie sich am besten schon etwas in der Informatik und/oder Mathematik auskennen, so kann man den Großteil auch verstehen, wenn man sich einfach nur für Daten interessiert und vor Mathe in der Schule keine Angst hatte.
Wir fangen an, indem wir die Definitionen der Begriffe einführen und dann betrachten, wie Data-Science-Projekte üblicherweise ablaufen. Dann geht’s los mit den Daten. Zuerst lernen wir die Daten selbst mithilfe von Statistiken und Visualisierungen kennen. Sodann tauchen wir in die Welt der Algorithmik ein: Assoziationsregeln zum Auffinden von Beziehungen, Clustering, um Gruppen ähnlicher Daten zu finden, Klassifikation, um Kategorien zuzuweisen, Regression, um Zusammenhänge zu lernen, Zeitreihenanalyse, um zeitliche Zusammenhänge auszunutzen. Im letzten Teil betrachten wir, wie wir Texte zu Zahlen werden lassen, mit denen wir rechnen können, welche Rolle die Statistik für die Bewertung von Ergebnissen spielt und wie man mit Big Data arbeiten kann.
Wenn Sie wollen, können Sie sich nur mit den Methoden beschäftigen. Alle Methoden werden aber auch praktisch demonstriert: Im ganzen Buch befinden sich Quelltextbeispiele und das Ergebnis der Ausgabe. Hierdurch können Sie gleichzeitig verstehen, welche Methoden es gibt und wie Sie diese anwenden. Das Buch selbst wurde komplett mithilfe von Jupyter Notebooks geschrieben. In diesen Notebooks können Sie direkt im Webbrowser den Quelltext selbst ausführen, um die Ergebnisse interaktiv nachzuvollziehen. Sie können den Quelltext hierbei auch beliebig anpassen, zum Beispiel, um besser zu verstehen, was passiert, wenn sich Parameter eines Modells ändern. Im Anhang wird erklärt, wie Sie sich das Buch auf Ihrem eigenen Rechner »installieren«.
Am Ende der meisten Kapitel gibt es praktische Übungen, die Sie zur Vertiefung und für ein besseres Verständnis bearbeiten können. Beispiellösungen für diese Aufgaben können Sie sich in der Onlineversion des Buches anschauen1. Wenn Sie mal unterwegs sind, können Sie auch einfach in der Onlineversion weiterlesen. Für einige Kapitel gibt es keine Übungen. In diesen Kapiteln geht es großteils um Definitionen (Kap. 1 und 2) oder einen Ausblick (Kap. 13). Bei Kapitel 12 wird eine Big-Data-Umgebung benötigt. Auch wenn man hierfür kleinere Beispiele definieren könnte, müssten sowohl eine Python- als auch eine Java-Umgebung für eine Übung eingerichtet und passend konfiguriert werden, was aber über den bei einem Crashkurs angebrachten Aufwand hinausgeht.
Mit Quellenangaben wird in diesem Buch insgesamt eher sparsam umgegangen: Das Ziel ist ein breiter Überblick und ein Verständnis des Themas. Für die Vertiefung gibt es zu jedem Kapitel, häufig sogar zu den Abschnitten innerhalb der Kapitel, ausreichend eigene Fachliteratur. Welche Bücher jeweils für Sie geeignet sind, kann man nicht pauschal sagen, das hängt vom jeweiligen Ziel und Wissensstand der Leserschaft ab. Durch die aktuelle Verbreitung findet man zu jedem Thema auch zusätzliche Informationen im Internet, wenn man nach den entsprechenden Begriffen sucht. Die meisten Quellen, die hier im Buch genannt sind, verweisen auf besonders wichtige Definitionen oder Anwendungen; in wenigen Fällen, wenn ein Thema wirklich nur sehr kurz behandelt wird, auch zur weiterführenden Fachliteratur. In der Printversion des Buches sind diese Quellen durch die Autoren, Titel und Jahreszahlen angegeben, wie es in Literaturlisten üblich ist. In der Onlineversion wird direkt auf die Quellen verlinkt, falls möglich mithilfe von Document Object Identifiern (DOIs): Dies sind persistente Identifier, die auch in vielen Jahren noch funktionieren sollten und zu den Homepages der Verlage weiterleiten.
Der Fokus des Buches liegt darauf, wie Analysen für Daten erstellt werden. Drei für die Anwendung wichtige Aspekte betrachten wir nicht: Wie man Daten sammelt, wie man Daten aus einer Datenbank laden kann und den operativen Einsatz von erstellten Analysen. Das Datensammeln ist von Anwendungsfall zu Anwendungsfall verschieden. Oft liegen schon Daten vor. Andernfalls muss individuell auf Basis der Problemstellung eine Lösung entwickelt werden. Das Laden von Daten hängt vom Datenformat ab. Bei kleineren Projekten werden häufig CSV-Dateien verwendet, wie wir es in den Übungen machen. Aber auch andere Formate wie JSON sind bei Dateien üblich. Hier muss man einfach bei den Bibliotheken nach den entsprechenden Möglichkeiten zum Laden suchen. Im Fall von Datenbanken kann man die Daten häufig mit der Anfragesprache SQL laden. SQL ist für sich genommen jedoch bereits ein Thema, das ganze Bücher füllt. Da das Laden von Daten für unseren Crashkurs sekundär ist, verzichten wir daher auf eine Einführung in Datenbanken und SQL. Beim operativen Einsatz geht es nicht nur um die Modelle und ihre Güte, sondern auch darum, wie diese in ein Softwaresystem eingebunden werden, wie dieses System getestet wird und wie hiermit bei einer Continuous Integration umgegangen wird. Hierbei handelt es sich um für die Softwaretechnik wesentliche Fragen, die jedoch die Analysen nicht direkt beeinflussen.
In diesem Buch verwenden wir vorwiegend die weibliche Bezeichnung von Rollen. Die Ausnahme ist die Rolle des Data Scientist. Im Englischen ist das Wort geschlechtslos und die Begriffe »Scientistin« oder »die Data Scientist« klingen eher komisch.
Ich wünsche Ihnen, liebe Leserinnen und Leser, viel Spaß und einen maximalen Erkenntnisgewinn mit diesem Buch.
Über Ihr Feedback würde ich mich freuen ([email protected]).
Steffen Herbold
Clausthal-Zellerfeld, Oktober 2021
1Big Data und Data Science
2Der Prozess von Data-Science-Projekten
3Allgemeines zur Datenanalyse
4Erkunden der Daten
5Assoziationsregeln
6Clusteranalyse
7Klassifikation
8Regression
9Zeitreihenanalyse
10Text Mining
11Statistik
12Big Data Processing
13Weiterführende Konzepte
Anhang
ASelbst ausführen
BNotationen
CAbkürzungen
DLiteratur
Index
1Big Data und Data Science
1.1Einführung in Big Data
1.1.1Volumen
1.1.2Velocity/Geschwindigkeit
1.1.3Variety/Vielfalt
1.1.4Innovative Informationsverarbeitungsmethoden
1.1.5Wissen generieren, Entscheidungen treffen, Prozesse automatisieren
1.1.6Noch mehr Vs
1.2Einführung in Data Science
1.2.1Was gehört zu Data Science?
1.2.2Beispielanwendungen
1.3Fähigkeiten von Data Scientists
2Der Prozess von Data-Science-Projekten
2.1Der generische Data-Science-Prozess
2.1.1Discovery
2.1.2Datenvorbereitung
2.1.3Modellplanung
2.1.4Modellerstellung
2.1.5Kommunikation der Ergebnisse
2.1.6Operationalisierung
2.2Rollen in Data-Science-Projekten
2.2.1Anwenderin
2.2.2Projektsponsorin
2.2.3Projektmanagerin
2.2.4Dateningenieurin
2.2.5Datenbankadministratorin
2.2.6Data Scientist
2.3Deliverables
2.3.1Sponsorenpräsentation
2.3.2Analystenpräsentation
2.3.3Quelltext
2.3.4Technische Spezifikation
2.3.5Daten
3Allgemeines zur Datenanalyse
3.1Das No-free-Lunch-Theorem
3.2Definition von maschinellem Lernen
3.3Merkmale
3.4Trainings- und Testdaten
3.5Kategorien von Algorithmen
3.6Übung
4Erkunden der Daten
4.1Texteditoren und die Kommandozeile
4.2Deskriptive Statistik
4.2.1Lagemaße
4.2.2Variabilität
4.2.3Datenbereich
4.3Visualisierung
4.3.1Anscombes Quartett
4.3.2Einzelne Merkmale
4.3.3Beziehungen zwischen Merkmalen
4.3.4Scatterplots für hochdimensionale Daten
4.3.5Zeitliche Trends
4.4Übung
5Assoziationsregeln
5.1Der Apriori-Algorithmus
5.1.1Support und Frequent Itemsets
5.1.2Ableiten von Regeln
5.1.3Confidence, Lift und Leverage
5.1.4Exponentielles Wachstum
5.1.5Die Apriori-Eigenschaft
5.1.6Einschränkungen für Regeln
5.2Bewertung von Assoziationsregeln
5.3Übung
6Clusteranalyse
6.1Ähnlichkeitsmaße
6.2Städte und Häuser
6.3k-Means-Algorithmus
6.3.1Der Algorithmus
6.3.2Bestimmen von k
6.3.3Probleme des k-Means-Algorithmus
6.4EM-Clustering
6.4.1Der Algorithmus
6.4.2Bestimmen von k
6.4.3Probleme des EM-Clustering
6.5DBSCAN
6.5.1Der Algorithmus
6.5.2Bestimmen von ε und minPts
6.5.3Probleme bei DBSCAN
6.6Single Linkage Clustering
6.6.1Der SLINK-Algorithmus
6.6.2Dendrogramme
6.6.3Probleme bei SLINK
6.7Vergleich der Algorithmen
6.7.1Clusterformen
6.7.2Anzahl der Cluster
6.7.3Ausführungszeit
6.7.4Interpretierbarkeit und Darstellung
6.7.5Kategorische Merkmale
6.7.6Fehlende Merkmale
6.7.7Korrelierte Merkmale
6.7.8Zusammenfassung des Vergleichs
6.8Übung
7Klassifikation
7.1Binäre Klassifikation und Grenzwerte
7.2Gütemaße
7.2.1Die Confusion Matrix
7.2.2Die binäre Confusion Matrix
7.2.3Binäre Gütemaße
7.2.4Die Receiver Operator Characteristic (ROC)
7.2.5Area Under the Curve (AUC)
7.2.6Micro und Macro Averages
7.2.7Jenseits der Confusion Matrix
7.3Decision Surfaces
7.4k-Nearest Neighbor
7.5Entscheidungsbäume
7.6Random Forests
7.7Logistische Regression
7.8Naive Bayes
7.9Support Vector Machines (SVMs)
7.10Neuronale Netzwerke
7.10.1Exkurs: CNNs zum Erkennen von Zahlen
7.11Vergleich der Klassifikationsalgorithmen
7.11.1Grundidee
7.11.2Decision Surfaces
7.11.3Ausführungszeit
7.11.4Interpretierbarkeit und Darstellung
7.11.5Scoring
7.11.6Kategorische Merkmale
7.11.7Fehlende Merkmale
7.11.8Korrelierte Merkmale
7.11.9Zusammenfassung des Vergleichs
7.12Übung
8Regression
8.1Güte von Regressionen
8.1.1Visuelle Bewertung der Güte
8.1.2Gütemaße
8.2Lineare Regression
8.2.1Ordinary Least Squares (OLS)
8.2.2Ridge
8.2.3Lasso
8.2.4Elastic Net
8.2.5Auswirkung der Regularisierung
8.3Jenseits von linearer Regression
8.4Übung
9Zeitreihenanalyse
9.1Box-Jenkins-Verfahren
9.2Trends und saisonale Effekte
9.2.1Regression und das saisonale Mittel
9.2.2Differencing
9.2.3Vergleich der Ansätze
9.3Autokorrelationen mit ARMA
9.3.1Autokorrelation und partielle Autokorrelation
9.3.2AR, MA und ARMA
9.3.3Auswahl von p und q
9.3.4ARIMA
9.4Jenseits von Box-Jenkins
9.5Übung
10Text Mining
10.1Preprocessing
10.1.1Erstellung eines Korpus
10.1.2Relevanter Inhalt
10.1.3Zeichensetzung und Großschreibung
10.1.4Stoppwörter
10.1.5Stemming und Lemmatisierung
10.1.6Visualisierung des Preprocessing
10.1.7Bag-of-Words
10.1.8Inverse Document Frequency
10.1.9Jenseits des Bag-of-Words
10.2Herausforderungen des Text Mining
10.2.1Dimensionalität
10.2.2Mehrdeutigkeiten
10.2.3Weitere Probleme
10.3Übung
11Statistik
11.1Hypothesentests
11.1.1t-Test
11.1.2Das Signifikanzniveau
11.1.3Wichtige Hypothesentests
11.1.4Anwendung der Tests
11.1.5Übliche Fehler bei Hypothesentests
11.2Effektstärke
11.3Konfidenzintervalle
11.4Gute Beschreibung von Ergebnissen
11.5Übung
12Big Data Processing
12.1Parallelisierung
12.2Verteiltes Rechnen zur Datenanalyse
12.3Datenlokalität
12.4MapReduce
12.4.1map()
12.4.2shuffle()
12.4.3reduce()
12.4.4Worthäufigkeiten mit MapReduce
12.4.5Parallelisierung
12.5Apache Hadoop
12.5.1HDFS
12.5.2YARN
12.5.3MapReduce mit Hadoop
12.5.4Streaming Mode
12.5.5Weitere Komponenten von Hadoop
12.5.6Grenzen von Hadoop
12.6Apache Spark
12.6.1Architektur
12.6.2Datenstrukturen
12.6.3Infrastruktur
12.6.4Worthäufigkeiten mit Spark
12.7Jenseits von Hadoop und Spark
13Weiterführende Konzepte
Anhang
ASelbst ausführen
BNotationen
CAbkürzungen
DLiteratur
Index
Zuerst wollen wir uns etwas mit Begriffen beschäftigen, um zu verstehen, worum es beim Thema Data Science geht. Aufbauend auf dem Begriff Big Data wird aufgezeigt, was eigentlich alles zu Data Science gehört und welche Fähigkeiten Data Scientists benötigen.
Den Begriff Big Data gibt es jetzt bereits seit einigen Jahren und der ursprüngliche mit diesem Thema verbundene Hype ist längst Vergangenheit. Stattdessen gibt es neue Buzzwords, wie das Internet der Dinge (engl. Internet of Things), die künstliche Intelligenz (engl. Artificial Intelligence), und hierbei insbesondere auch die tiefen neuronalen Netze (engl. Deep Neural Network, Deep Learning). Nichtsdestotrotz ist Big Data mit diesen neuen Themen eng verbunden und häufig eine Voraussetzung oder zumindest eine verwandte Technologie.
Trotz der anhaltenden Relevanz des Themas ist dennoch häufig kein gutes Verständnis für den Unterschied zwischen vielen Daten und Big Data vorhanden. Ein gutes Verständnis der Besonderheiten und Eigenschaften von Big Data und von den damit verbundenen Implikationen und Problemen ist jedoch zwingend notwendig, wenn man auf Big Data aufbauende Technologien in Projekten einsetzen will. Der Grund für Missverständnisse rund um den Begriff Big Data ist einfach: Wir denken intuitiv an »große Datenmengen«. Eine derart vereinfachte Begriffs-definition ignoriert jedoch wesentliche Aspekte von Big Data. Backups sind ein gutes Beispiel für große Datenmengen, die nicht Big Data sind. In modernen Rechenzentren werden Backups auf Hintergrundspeichern mit einer hohen Bitstabilität, aber auch einer hohen Latenz gespeichert. Dort lagern häufig riesige Datenmengen in der Hoffnung, dass sie nie gebraucht werden, bevor sie gelöscht oder überschrieben werden. Es gibt noch einen weiteren Grund, warum es unpraktisch ist, Big Data nur über das Datenvolumen zu definieren: Wir müssten die Definition ständig anpassen, da die Speicherkapazitäten, die Rechenkraft und der Arbeitsspeicher stetig wachsen.
Eine bessere und allgemein akzeptierte Definition für Big Data basiert auf den drei Vs1.
Definition von Big Data:
Als Big Data bezeichnet man Daten, die ein hohes Volumen, eine hohe Geschwindigkeit (engl. velocity) und eine hohe Vielfalt (engl. variety) haben, sodass man kosteneffiziente und innovative Informationsverarbeitungsmethoden benötigt, um Wissen zu generieren, Entscheidungen zu treffen oder Prozesse zu automatisieren.
Zum besseren Verständnis zerlegen wir nun diese Definition in ihre Einzelteile und betrachten diese genauer. Hierbei wird klar werden, warum Big Data mehr ist als nur Datenvolumen.
Auch wenn das Datenvolumen nicht der einzig wichtige Faktor ist, ist es dennoch entscheidend. Nicht umsonst heißt es Big Data. Dass keine bestimmte Datengröße das Kriterium sein kann, wird schon klar, wenn man sich überlegt, dass Google die Forschungsarbeit, in der MapReduce vorgestellt wurde, bereits 2006 publiziert hat [Dean & Ghemawat 2008]. Zu diesem Zeitpunkt war ein Terabyte noch ein sehr großes Datenvolumen. Im Jahr 2021 ist dies lediglich die Festplattengröße des Laptops, auf dem dieses Buch geschrieben wurde. Ein weiteres Beispiel ist das Wachstum des Datenvolumens, das im Internet jährlich übertragen wird (Abb. 1–1).
Abb. 1–1Wachstum des Datenvolumens im Internetverkehr
Eine vereinfachte Richtlinie für das Datenvolumen lautet, dass es mehr Daten sein müssen, als in den Arbeitsspeicher moderner Server passen. Besser ist es jedoch, wenn man sich einfach die Frage stellt, ob es möglich ist, die Daten (oft) zu kopieren, insbesondere auch über Netzwerkverbindungen. Ist dies nicht mehr der Fall, handelt es sich vermutlich um genug Daten, um von Big Data zu sprechen. In extremen Fällen sind die Daten sogar so groß, dass man sie gar nicht über das Netzwerk kopieren kann. Stattdessen nutzt man das Sneaker Net2: Die Daten werden direkt auf Festplatten verschickt. In Bezug auf den Datendurchsatz ist ein mit Festplatten beladenes Transportflugzeug unschlagbar. Die Latenz lässt jedoch zu wünschen übrig. Ein Beispiel für eine Anwendung, die ohne das Sneaker Net nicht geklappt hätte, ist die Erstellung des ersten Bilds von einem schwarzen Loch [Whitwam 2019].
Die Velocity ist die Geschwindigkeit, mit der neue Daten generiert, verarbeitet und/oder ausgewertet werden müssen. Es gibt viele Beispiele für Daten, die eine hohe Geschwindigkeit haben, zum Beispiel die durch Sensoren wie LIDAR und Kameras erfassten Daten von autonomen Fahrzeugen. Derartige Daten können in kürzester Zeit ein sehr hohes Volumen erreichen. Die Firma Waymo hat zum Beispiel einen zwei Terabyte großen Datensatz, der während elf Fahrstunden gesammelt wurde, veröffentlicht3. Daten, die mehr oder weniger kontinuierlich in hoher Geschwindigkeit generiert werden, nennt man auch Streamingdaten.
Eine besondere Schwierigkeit beim Umgang mit Streamingdaten besteht darin, dass diese oft in nahezu Echtzeit verarbeitet werden müssen. Beim autonomen Fahren ist dies sofort klar, schon alleine wegen der Sicherheit. Doch das gilt auch für viele andere Anwendungen, zum Beispiel für das Sortieren des Nachrichten-streams in sozialen Netzwerken. Hier kommt zwar niemand zu schaden, die Nutzer würden einen Dienst aber schnell verlassen, wenn die Ladezeiten zu lang sind. Entsprechend müssen beim Umgang mit Streamingdaten in der Regel zwei Anforderungen gleichzeitig erfüllt werden: Daten müssen sehr schnell empfangen werden und dürfen dann auch nicht lange in einem Zwischenspeicher landen bzw. sich dort befinden, sondern müssen sofort verarbeitet und ausgewertet werden. Hierdurch ergibt sich eine Art inverse Korrelation zwischen der Geschwindigkeit und dem Datenvolumen: Je höher die Geschwindigkeit, desto weniger Daten reichen aus, um Daten zu Big Data werden zu lassen. Oder an einem Beispiel: Ein Gigabyte pro Tag zu verarbeiten ist einfacher als ein Gigabyte pro Sekunde.
Die Vielfalt der Daten ist der dritte große Aspekt von Big Data. Mittlerweile ist die Analyse von Bildern, Videos und Texten zu einer normalen Anwendung geworden. Dies war jedoch noch nicht der Fall, als der Begriff Big Data geprägt wurde. Im Zeitraum um die Jahrtausendwende lagen die Daten, die analysiert werden sollten, üblicherweise strukturiert vor, zum Beispiel in relationalen Datenbanken. Die Daten waren entweder numerisch oder in feste Kategorien eingeteilt. Das änderte sich im Laufe der 2000er-Jahre, dadurch dass das Internet allgegenwärtig wurde und wir immer mehr Computertechnik in unseren Alltag übernommen haben, zum Beispiel in Form von Smartphones. Hier entstanden Daten eher auf unstrukturierte Weise, zum Beispiel durch Webseiten, die ad hoc von Nutzern erstellt wurden. Es ist daher kein Zufall, dass Google den Begriff Big Data und die damit verbundenen Technologien mitgeprägt hat: Die Indizierung des stetig wachsenden und komplexer werdenden Internets zwang dazu, die vorhandenen Techniken rapide weiterzuentwickeln. Hierbei mussten nicht nur immer größere Datenmengen verarbeitet werden, sondern vor allem eine Vielfalt von Datenformaten, insbesondere Text- und Bilddaten, später auch Videodaten.
Insgesamt gibt es viel mehr unstrukturierte Daten als strukturierte Daten. Dies wird üblicherweise als Pyramide dargestellt (Abb. 1–2), in der zwischen unstrukturierten, quasistrukturierten, semistrukturierten und strukturierten Daten unterschieden wird.
Abb. 1–2Datenpyramide
An der Spitze der Pyramide sind die strukturierten Daten, zum Beispiel Tabellen in relationalen Datenbanken, Comma-Separated-Value-(CSV-)Dateien und Ähnliches. Strukturierte Daten kann man im Normalfall direkt in ein Analysetool laden, ohne dass Vorverarbeitungsschritte notwendig sind. Die Vorverarbeitung beschränkt sich daher bei strukturierten Daten höchstens auf Aufgaben wie das Säubern der Daten, um beispielsweise ungültige Datenpunkte oder Ausreißer zu filtern.
Als Nächstes kommen die semistrukturierten Daten, zum Beispiel XML und JSON. Der Hauptunterschied zwischen strukturierten und semistrukturierten Daten ist die Flexibilität der Datenformate. Bei strukturierten Daten ist beispielsweise in der Regel der Typ einer Spalte fest definiert. Dies ist bei semistrukturierten Daten anders: Hier trifft man oftmals auf verschachtelte Strukturen, die man für die Analyse erst aufbrechen muss. Außerdem gibt es häufig optionale Felder, wodurch die Verarbeitung komplizierter werden kann. Dennoch kann man mit semistrukturierten Daten überwiegend einfach arbeiten, da diese auch ohne großen Aufwand in viele Analyseumgebungen importiert werden können.
Im Allgemeinen gilt für strukturierte und semistrukturierte Daten gemeinsam, dass es feste Datenformate und/oder Anfragesprachen gibt, mit denen man einfach die benötigten Informationen extrahieren und laden kann. Dies ist in den beiden unteren Ebenen der Pyramide nicht mehr der Fall. Quasistrukturierte Daten haben zwar eine fest definierte Struktur, es ist aber ein gewisser Aufwand erforderlich, um an die benötigten Informationen zu kommen. Als Beispiel betrachten wir die Ausgabe des Befehls ls -l, m it dem man sich in einem Linuxterminal die Dateien in einem Ordner anzeigen lassen kann.
%ls -l
total 6792
drwxr-xr-x 1 sherbold sherbold 512 Mar 24 14:23 data/
-rw-r--r-- 1 sherbold sherbold 2957 May 5 14:30 howto.ipynb
drwxr-xr-x 1 sherbold sherbold 512 Apr 27 17:04 images/
-rw-r--r-- 1 sherbold sherbold 63683 May 6 11:52 kapitel_01.ipynb
-rw-r--r-- 1 sherbold sherbold 113117 May 10 10:11 kapitel_02.ipynb
-rw-r--r-- 1 sherbold sherbold 24576 May 10 10:08 kapitel_03.ipynb
-rw-r--r-- 1 sherbold sherbold 886609 May 10 10:10 kapitel_04.ipynb
-rw-r--r-- 1 sherbold sherbold 39543 May 6 16:44 kapitel_05.ipynb
-rw-r--r-- 1 sherbold sherbold 1664391 May 6 18:50 kapitel_06.ipynb
-rw-r--r-- 1 sherbold sherbold 2679078 May 10 09:05 kapitel_07.ipynb
-rw-r--r-- 1 sherbold sherbold 199328 May 10 09:23 kapitel_08.ipynb
-rw-r--r-- 1 sherbold sherbold 446103 May 10 09:39 kapitel_09.ipynb
-rw-r--r-- 1 sherbold sherbold 579843 May 10 09:50 kapitel_10.ipynb
-rw-r--r-- 1 sherbold sherbold 148082 May 10 09:58 kapitel_11.ipynb
-rw-r--r-- 1 sherbold sherbold 54300 May 6 12:11 kapitel_12.ipynb
-rw-r--r-- 1 sherbold sherbold 5967 May 6 15:16 kapitel_13.ipynb
-rw-r--r-- 1 sherbold sherbold 4927 May 5 14:30 notations.ipynb
-rw-r--r-- 1 sherbold sherbold 3887 May 6 11:59 vorwort.ipynb
Man sieht eine klare Struktur in den Daten: Die meisten Zeilen beinhalten die Benutzerrechte, gefolgt von der Anzahl der Symlinks auf die Datei, dem Benutzer und der Gruppe, die die Datei besitzen, der Dateigröße, dem Datum der letzten Änderung und zuletzt dem Namen. Diese Struktur kann man nutzen, um einen Parser zu schreiben, der die Daten einliest, zum Beispiel mithilfe von einem regulären Ausdruck. Wir können also eine Struktur über quasistrukturierte Daten legen, indem wir die Struktur durch einen Parser selbst definieren. Dies ist zwar mehr Aufwand als bei strukturierten und semistrukturierten Daten, aber man kommt dennoch zuverlässig an die benötigten Informationen. Trotzdem kann es sehr leicht passieren, dass sich die Struktur ändert und der selbst geschriebene Parser nicht mehr funktioniert. Daher ist das Lesen von quasistrukturierten Daten fehleranfällig, da man eventuell Sonderfälle übersieht oder sich das Datenformat ändern kann. Man sollte also den oft signifikanten Wartungsaufwand bei der Verarbeitung von quasistrukturierten Daten für die Nutzung im Produktivbetrieb berücksichtigen.
Die unstrukturierten Daten sind auf der untersten Ebene der Pyramide. Hier befindet sich der Großteil der Daten: Bilder, Videos und Text. Die Herausforderung bei diesen Daten ist es, eine Struktur zu bestimmen, die man später verarbeiten kann. Hier gibt es keine Faustformel, es hängt stattdessen von den konkreten Daten und der geplanten Anwendung ab. Hinzu kommt, dass unstrukturierte Daten häufig vermischt sind. Dieses Buch ist ein gutes Beispiel: Wir haben eine Mischung aus natürlicher Sprache, Bildern, Formatinformationen (z.B. Überschriften, Listen) und Quelltext.
Auch wenn die drei Vs als die zentralen Eigenschaften von Big Data angesehen werden, sind die anderen Teile der Definition auch wichtig, um zu verstehen, dass Big Data mehr ist als einfach nur viele Daten, die möglicherweise schnell generiert werden und verschiedene Formate haben. Der nächste Teil der Definition spricht von dem Bedarf an innovativen Informationsverarbeitungsmethoden. Das bedeutet, dass man für Big Data nicht einen normalen Arbeitsplatzrechner oder sogar ein traditionelles Batch-System in einem Großrechner, in dem sich viele Rechenknoten einen Speicher über das Netzwerk teilen, nutzen kann. Stattdessen ist die Datenlokalität (engl. data locality) wichtig, da man in der Regel keine Kopien der Daten über das Netzwerk erzeugen kann. Dies hat zu einer Transformation geführt, sodass es immer mehr Infrastrukturen gibt, in denen Rechenkraft und schneller, verteilter Speicher direkt integriert sind. Als Big Data ein neues Konzept war, gab es solche Technologien noch nicht. Heutzutage hat man viele Möglichkeiten, allein bei der Apache Foundation4 gibt es unter anderem Hadoop, Spark, Storm, Kafka, Cassandra, Hive, HBase, Giraph und viele weitere Technologien, die hochprofessionell als Open Source entwickelt und von vielen Unternehmen zur Verarbeitung von Big Data eingesetzt werden.
Der letzte Teil der Big-Data-Definition bedeutet, dass Big Data kein Selbstzweck ist. Man spricht nur dann von Big Data, wenn man die Daten auch zum Erreichen eines Ziels nutzt. Ziele können der reine Erkenntnisgewinn sein, die Unterstützung der Entscheidungsfindung oder sogar die Automatisierung ganzer Geschäftsprozesse. Dieser Aspekt der Definition ist so wichtig, dass er häufig als weiteres V betrachtet wird: Value.
Die Definition von Gartner, die wir hier im Buch verwenden, hat »nur« drei Vs. Die Definition von Big Data durch Wörter, die mit V anfangen, ist jedoch so populär, dass es verschiedene Erweiterungen gibt mit bis zu 42 (!) Vs [Shafer 2017]. Die 42 Vs sollte man aber eher als Satire verstehen, die zeigen soll, dass mehr Vs nicht immer zu einer besseren Definition führen. Nichtsdestotrotz gibt es seriöse Definitionen mit bis zu zehn Vs5. Ein zusätzliches V hatten wir bereits: Value, also die Wertschöpfung durch Big Data. Die Korrektheit (engl. veracity) ist ein weiteres V, was häufig als hochrelevant eingeschätzt wird. Je mehr Daten man auswertet, desto schwieriger wird es, sicherzustellen, dass die Daten zuverlässig sind und sich Ergebnisse reproduzieren lassen. Dies ist insbesondere dann schwer, wenn sich die Datenquellen oft ändern, zum Beispiel bei der Analyse von Nachrichten oder der sozialen Medien. Volume, Velocity, Variety, Veracity und Value zusammen ergeben die Fünf-V-Definition von Big Data, die stark verbreitet ist. Weitere Vs betrachten wir an dieser Stelle nicht mehr.
Auch wenn der Begriff Data Science als Buzzword sehr populär ist, existiert noch keine allgemein akzeptierte Definition. Hierfür gibt es vermutlich zwei Gründe: Erstens ist der Begriff sehr generisch, sodass jede Verwendung von Daten, die in irgendeiner Form als »wissenschaftlich« betrachtet wird, als Data Science bezeichnet werden kann. Und zweitens gibt es einen großen Hype um diesen Begriff, weshalb Firmen, Fördermittelgeber und öffentliche Institutionen mit diesem Begriff Werbung für sich betreiben wollen.
Aus diesem Grund können wir hier leider auch keine kurze und einprägsame Definition für diesen Begriff geben. Stattdessen betrachten wir, welche Konzepte unter anderem als Data Science angesehen werden, und schauen uns Beispiele für Data-Science-Anwendungen an.
Data Science kombiniert Methoden aus der Mathematik, Statistik und Informatik mit dem Ziel, datengetriebene Anwendungen zu entwickeln oder Wissen zu generieren. Die Wertschöpfung ist also sehr ähnlich zu Big Data. Der Hauptunterschied zwischen den Begriffen liegt auf dem Fokus auf große Datenmengen bei Big Data, der bei Data Science nicht gegeben sein muss.
Mathematik ist häufig das Fundament, auf dem die Datenanalyse definiert wird. Die Modelle über die Daten, die erstellt werden, sind im Endeffekt nichts anderes als eine mathematische Beschreibung von Aspekten der Daten. Man könnte also Data Science als mathematische Modellierung verstehen. Die Rolle der Mathematik ist jedoch größer als die einer »Beschreibungssprache« für Modelle. Teilgebiete der Mathematik liefern die Methoden, die man braucht, um Modelle zu bestimmen.
Optimierung
beschreibt, wie man die optimale Lösung für eine Zielfunktion findet, sodass die gefundene Lösung gewisse Nebenbedingungen erfüllt. Die Zielfunktion und die Nebenbedingungen werden bei Data Science häufig direkt aus den Daten ermittelt, sodass die Lösung optimal für die gegebenen Daten ist.
Stochastik
ist ein Teilgebiet der Mathematik, das sich mit zufälligen Verhalten durch Zufallsvariablen und stochastischen Prozessen befasst. Stochastik bildet daher eine wichtige Grundlage für die Theorie des maschinellen Lernens, und stochastische Modelle werden häufig genutzt, um Daten zu beschreiben.
Ohne die
Geometrie
könnte man keine Daten, die räumlich verteilt sind, analysieren, zum Beispiel geografische Daten oder der 3-dimensionale Raum vor einem Fahrzeug.
Wissenschaftliches Rechnen
wird immer häufiger nicht nur genutzt, um Daten für Analysen zu simulieren, sondern auch, um Modelle über Daten durch Simulation zu bestimmen.
Die Statistik befasst sich mit der Analyse von Daten durch Stichproben, zum Beispiel das Schätzen der den Daten zugrunde liegenden Verteilungen, Zeitreihenanalysen oder die Entwicklung von statistischen Tests, mit denen man auswerten kann, ob Effekte zufällig oder signifikant sind.
Lineare Modelle
sind eine vielfältig einsetzbare Methode, um Daten zu beschreiben, um daraus Zusammenhänge zu erkennen oder Trends zu ermitteln.
Inferenz
ist ein ähnliches Verfahren, nur dass Wahrscheinlichkeitsverteilungen statt linearer Modelle genutzt werden, um die Daten zu beschreiben.
Zeitreihenanalyse
nutzt die interne Struktur von Daten, die über die Zeit gemessen wurden. Hierbei werden zum Beispiel saisonale Effekte oder andere sich wiederholende Muster genutzt, um die Struktur der Zeitreihe zu modellieren und zukünftige Werte vorherzusagen.
Ohne die Informatik wären die mathematischen und statistischen Verfahren nicht durch Computer ausführbar. Doch auch die theoretische Informatik liefert wichtige Grundlagen für Data Science.
Datenstrukturen und Algorithmen
sind die Grundlage von jeder effizienten Umsetzung von Algorithmen. Ohne das Verständnis von Datenstrukturen, wie Bäumen, Hashmaps und Listen, sowie von der Laufzeitkomplexität von Algorithmen wären Datenanalysemethoden nicht skalierbar auf große Datenmengen.
Die
Informationstheorie
liefert das nötige Verständnis über die Entropie (Unsicherheit in den Daten) und gemeinsame Information von Daten und ist damit die Grundlage für viele Algorithmen des maschinellen Lernens.
Datenbanken
werden benötigt, um Daten effizient zu speichern und zugreifbar zu machen. SQL ist als Anfragesprache nicht nur bei relationalen Datenbanken, sondern auch bei NoSQL-Datenbanken allgegenwärtig.
Paralleles und verteiltes Rechnen
sind notwendig, um das Arbeiten mit großen Datenmengen und hoher Rechenkraft zu ermöglichen.
Die klassische
künstliche Intelligenz
liefert die Grundlagen für die logische Modellierung und die Definition von Regelsystemen für viele Data-Science-Anwendungen. In diesem Buch unterscheiden wir explizit zwischen künstlicher Intelligenz und maschinellem Lernen. Wir benutzen den Begriff
künstliche Intelligenz
, um Anwendungen wie Deep Blue [
Newborn 1997
], die regelbasierte Schach-Engine, die als erster Computer Gary Kasparow im Schach besiegt hat, zu beschreiben.
Softwaretechnik
ist für die Operationalisierung von Anwendungen und das Management von Data-Science-Projekten notwendig.
Und zuletzt gibt es natürlich noch das maschinelle Lernen, was häufig auch als definierender Aspekt von Data Science gesehen wird. Das maschinelle Lernen kombiniert Mathematik, Statistik und Informatik auf geschickte Art und Weise. Je nachdem welche Methoden man betrachtet, können alle drei Disziplinen das maschinelle Lernen für sich beanspruchen. Durch maschinelles Lernen versucht man, Wissen aus Daten zu gewinnen, sodass das Wissen die Daten nicht nur beschreibt, sondern auch auf weitere Daten und Applikationen angewendet werden kann, zum Beispiel durch neuronale Netze, Entscheidungsbäume und Mustererkennung.
So unterschiedlich wie die Grundlagen von Data Science sind, so verschieden sind auch die Anwendungen in der Forschung, Industrie und Gesellschaft. Hier sind fünf kurze Beispiele:
Alpha Go
ist ein Beispiel für ein intelligentes selbstlernendes System. Vor einigen Jahren überraschte Alpha Go die Fachwelt, weil es scheinbar aus dem Nichts kam und einen der weltbesten Spieler im Go besiegte. Go gilt als besonders schwieriges Spiel, zum Beispiel im Verhältnis zu Schach, und Computer waren bis dahin gerade mal auf dem Niveau von Amateuren und stellten keine Herausforderung für professionelle Spieler dar. Alpha Go kombinierte klassische regelbasierte künstliche Intelligenz mit statistischen Monte-Carlo-Simulationen und selbstlernenden neuronalen Netzen, um dies zu erreichen.
Die
Robotik
nutzt maschinelles Lernen, um den Robotern beizubringen, sich zu bewegen. Mit der Zeit können Roboter zum Beispiel lernen, durch welche Bewegungen sie das Umfallen verhindern können [
Hwangbo et al. 2019
].
Marketing
setzt auf Data Science, um im Internet gezielt Werbung schalten zu können. Die dahinter liegende Industrie erwirtschaftet Milliarden, indem Nutzern relevante Werbung basierend auf ihrem Verhalten im Internet gezeigt wird.
In der
Medizin
werden Daten immer häufiger genutzt, um Entscheidungen zu unterstützen. IBM Watson, das erste Computerprogramm, das Menschen im Jeopardy besiegt hat
6
, wird heutzutage zum Beispiel auch eingesetzt, um geeignete Krebstherapien auszuwählen
7
. (Auch wenn das nicht so gut klappt, wie man es sich ursprünglich erhofft hat [
Strickland 2019
].)
Im
autonomen Fahren
wird maschinelles Lernen für verschiedene Aufgaben genutzt, zum Beispiel für die Erkennung von Objekten, wie Verkehrsschildern, anderen Autos oder Fußgängern.
Data Scientists sind weder Informatikerinnen, Mathematikerinnen, Statistikerinnen oder Domänenexpertinnen. Der perfekte Data Scientist bringt eine Kombination von allem als Fähigkeiten mit:
Gute mathematische Fähigkeiten, insbesondere über Optimierung und Stochastik
Sicherer Umgang mit Methoden aus der Statistik, insbesondere Regression, statistische Tests und Inferenz
Gute Programmierkenntnisse, sicherer Umgang mit Datenbanken, Datenstrukturen, parallelem Rechnen und Big-Data-Technologien
Problemloser Wechsel zwischen den obigen Fähigkeiten und sicherer Umgang mit Technologien, die in der Schnittstelle liegen, insbesondere dem maschinellen Lernen
Genug Wissen über die Domäne, um die Daten zu verstehen, Fragestellungen zu definieren und zu erarbeiten, ob und wie diese Fragen mithilfe von Daten beantwortet werden können
Außerdem müssen Data Scientists teamfähig sein, um mit Domänenexpertinnen auf der einen Seite und technischen Expertinnen auf der anderen Seite zusammenarbeiten zu können. Die Domänenexpertinnen helfen den Data Scientists, die Daten, Fragestellungen und Projektziele zu verstehen. Die technischen Expertinnen helfen bei der Umsetzung von Projekten, insbesondere bei der Operationalisierung.
Nicht zuletzt sollten Data Scientists zwar den notwendigen Enthusiasmus mitbringen, um sich für die Arbeit mit Daten begeistern zu können, aber auch die notwendige Skepsis, um die Problemstellung nach wissenschaftlichen Prinzipien anzugehen. Das heißt insbesondere auch, dass man alles tun sollte, um auszuschließen, dass etwas nur aus Zufall funktioniert, und rigoros überprüfen muss, ob Modelle wirklich wie gewünscht funktionieren.
Wenn man sich dieses Fähigkeitsprofil anschaut, wird schnell klar, dass die Anzahl der Personen, die alles mitbringen, begrenzt ist. Microsoft Research hat sich daher mit der Fragestellung befasst, was Data Scientists im Arbeitsalltag leisten und welche Arten von Data Scientists es gibt [Kim et al. 2017]. Hierbei wurden acht Arten von Data Scientists bestimmt:
Polymath
sind die Alleskönner, die das gesamte oben beschriebene Profil erfüllen und alles von der zugrunde liegenden Mathematik bis hin zu den Big-Data-Infrastrukturen verstehen.
Data Evangelists
analysieren selbst Daten, verbreiten aber auch die Erkenntnisse und Modelle. Sie setzen sich insbesondere auch dafür ein, dass aus ihren Modellen Produkte entwickelt werden.
Data Preparers
sammeln Daten und bereiten diese für die Analyse auf.
Data Analyzers
analysieren Daten, die ihnen zur Verfügung gestellt werden.
Data Shapers
kombinieren die beiden vorigen Rollen, das heißt, sie sammeln und analysieren Daten.
Platform Builders
sammeln nicht nur Daten, sondern entwickeln und administrieren ganze Plattformen, die zur Datensammlung und Analyse genutzt werden können.
Moonlighters 50%
und
Moonlighters 20%
sind Teilzeit-Data-Scientists, die zwar auch eine Data-Science-Rolle ausfüllen, aber nur als ein Bruchteil ihrer täglichen Arbeit.
Insight Actors
sind die Nutzer von Analysen und Modellen.
Prozesse sind der Kern jeder Aktivität, auch wenn man sich dessen oft gar nicht bewusst ist. Menschen führen Aktivitäten durch das Anwenden von Techniken durch. Die Prozesse steuern und organisieren diese Aktivitäten und beschreiben die Techniken, die eingesetzt werden. Abbildung 2–1 zeigt die Beziehung von Menschen, Techniken und Prozessen.
Abb. 2–1Beziehung von Menschen, Techniken und Prozessen
Das Ziel eines guten Prozesses ist es, die Menschen zu unterstützen, zum Beispiel indem sichergestellt wird, dass wichtige Aktivitäten nicht vergessen werden, oder durch die Verwendung von geeigneten Werkzeugen zum Lösen von Problemen. Prozesse erreichen dies, indem sie geeignete Best Practices beschreiben. Diese Best Practices sollten auf Basis der erfolgreichen Anwendung in der Vergangenheit bestimmt werden. Hierdurch soll das Wissen und der Erfolg aus vergangenen Projekten konserviert und genutzt werden, um die Fähigkeiten der Menschen zu unterstützen und das Risiko, dass ein Projekt fehlschlägt, zu reduzieren. Dies funktioniert jedoch nur, wenn die Prozesse von Menschen auch unterstützt werden.
Wenn die Menschen den Prozess nicht akzeptieren oder nicht an seinen Nutzen glauben, erreicht man das Gegenteil und erhöht stattdessen das Risiko von Projekten. Daher sollten die Personen die notwendigen Schulungen erhalten, um die Techniken einzusetzen und ihren Nutzen zu kennen. Außerdem muss man sicherstellen, dass die Techniken auch zum Prozess passen.
Man sollte sich auch immer bewusst sein, dass es nicht den einen Prozess gibt, der perfekt zu jedem Projekt passt. Man sollte den Prozess daher immer an die Situation anpassen, man spricht hier auch vom Tailoring. Hierbei sind die zur Verfügung stehenden Techniken und der Projektkontext zu berücksichtigen, zum Beispiel die Größe und Priorität des Projekts, ob es sicherheitskritische Aspekte gibt oder ob die Mitarbeiterinnen Vorwissen aus ähnlichen Projekten mitbringen.
Abbildung 2–2 zeigt den generischen Prozess für Data-Science-Projekte, der aus sechs Phasen besteht.
Abb. 2–2Überblick über den generellen Prozess von Data-Science-Projekten
Der Prozess ist iterativ, das heißt, dass mehrere Wiederholungen aller Phasen innerhalb eines Projekts möglich sind. Innerhalb einer Iteration kann man nur zu den vorherigen Phasen zurück, solange man die Ergebnisse der Iteration noch nicht kommuniziert hat. Der Grund hierfür ist offensichtlich: Sobald man die Projektergebnisse übermittelt hat, zum Beispiel an das Management, die Kunden oder andere Forscher in Form einer Publikation, kann man diese nicht ohne Weiteres ändern. Im Folgenden betrachten wir die Projektphasen im Detail.
Jedes Data-Science-Projekt beginnt mit der Discovery Phase. Das Ziel der Discovery ist es, die Projektdomäne, Ziele und Daten zu verstehen. Anhand der gesammelten Informationen wird beurteilt, ob die für das Projekt notwendigen Ressourcen verfügbar sind, und die weiteren Projektschritte werden geplant.
Der Data Scientist muss das notwendige Wissen erlangen, um die Domäne des Projekts zu verstehen, insbesondere den Anwendungsfall, der adressiert werden soll. Häufig wird der Data Scientist hierbei von Domänenexpertinnen unterstützt, die die notwendigen Informationen liefern. Dies kann zum Beispiel bedeuten, dass sie zur Verfügung stehen, um Fragen zu beantworten, oder auch dass Anforderungen in Form von Interviews und Workshops gesammelt werden. Hierdurch lernt der Data Scientist auch bereits die Daten und Informationsquellen kennen. Dieses Wissen ist notwendig, um das Projekt zu verstehen und die Ergebnisse zu interpretieren. Es kann sein, dass der Data Scientist bereits selbst Experte oder Expertin in der Anwendungsdomäne ist, zum Beispiel weil dies nicht das erste derartige Projekt ist. Dennoch ist es häufig sinnvoll, den Anwendungsfall zusammen mit weiteren Domänenexpertinnen zu betrachten, um sicherzustellen, dass keine wesentlichen Aspekte übersehen werden.
Als Teil des Lernprozesses der Domäne sollte auch die Vergangenheit nicht außer acht gelassen werden. Bei Forschungsprojekten ist es in der akademischen Welt üblich, zuerst die verwandten Forschungsarbeiten zu identifizieren und den Stand der Forschung aufzuarbeiten. Ähnlich sollte man auch in der Wirtschaft vorgehen: Gab es vielleicht bereits frühere Projekte mit einem ähnlichen Ziel? Falls ja, warum sind diese gescheitert bzw. warum wird dieses Projekt jetzt neu durchgeführt? Die alten Projektergebnisse – sowohl positive als auch negative – sind ideale Quellen, um Projektrisiken zu identifizieren. Hierbei sollte man sich auch nicht nur auf das eigene Unternehmen beschränken. Im Rahmen der Möglichkeiten des Urheber- und Patentrechts ist eine Analyse der Konkurrenzprodukte oft hilfreich, um mögliche Lösungen zu verstehen.
Sobald der Data Scientist die Domäne verstanden hat, kann er oder sie anfangen, aus den genannten Zielen eine Problembeschreibung zu erarbeiten, die durch die Datenanalyse gelöst werden soll. Diese Problembeschreibung ist nicht identisch zu den wirtschaftlichen Zielen oder Forschungsinteressen: Während die Ziele nicht direkt mit den Daten, sondern eher mit der Anwendung zusammenhängen, formuliert die Problembeschreibung die Ziele als Datenanalyseproblem um. Dies ist dem Data Scientist nur möglich, da er oder sie vorher die Domäne und den Anwendungsfall mithilfe der Domänenexpertinnen kennengelernt hat. Zur Problembeschreibung gehört auch eine Analyse der Stakeholder, zum Beispiel müssen die Stakeholder, deren Daten benötigt werden, identifiziert werden. Weitere wichtige Stakeholder sind diejenigen, die von der Analyse direkt betroffen sind, zum Beispiel weil ihre Arbeit dadurch unterstützt werden soll. Neben Stakeholdern müssen auch die aktuellen Probleme aufgearbeitet werden, sofern dies nicht schon geschehen ist. Hierdurch wird die Motivation vom Projekt geklärt und das Verständnis der Ziele verbessert. Anschließend werden die Projektziele, Erfolgskriterien und Risiken des Projekts klar definiert, um eine verbindliche Grundlage für das weitere Vorgehen zu schaffen.
Durch die oben beschriebenen Aktivitäten bekommt der Data Scientist ein Grundverständnis der Daten, die im Projekt genutzt werden. Grundsätzlich muss man hierbei zwischen Daten, die bereits vorhanden sind (zum Beispiel in einem Data Warehouse), und Daten, die noch gesammelt werden müssen, unterscheiden. In beiden Fällen obliegt es dem Data Scientist, sich zunächst einen Überblick über den Umfang und die Struktur der Daten zu verschaffen sowie ein abstraktes Verständnis der verfügbaren Informationen zu erlangen. Andernfalls wäre die abschließende Analyse der verfügbaren und benötigten Ressourcen nicht möglich.
Während der Discovery befasst man sich auch mit dem wissenschaftlichen Teil von Data Science. Datenanalysen sollten nicht rein explorativ sein. Stattdessen sollten klare Erwartungen in Form von Hypothesen, die getestet werden können, formuliert werden. Andernfalls erhöht man das Risiko, dass die Projektergebnisse sich nicht über die im Projekt verfügbaren Daten hinaus generalisieren lassen. Die Hypothesen steuern auch das Vorgehen in den weiteren Phasen des Projekts. Es sollten zum Beispiel Erwartungen definiert werden, welche Daten nützlich sind, wie man sie verwenden sollte und welches Wissen man aus den Daten gewinnen möchte. Auch wenn der Data Scientist hauptverantwortlich für die Hypothesen ist, sollten diese immer mit Domänenexpertinnen besprochen werden, um ihre Plausibilität zu prüfen.
Der letzte Schritt der Discovery ist die Entscheidung, ob das Projekt machbar ist. Diese Auswertung sollte die identifizierten Risiken und die verfügbaren Ressourcen berücksichtigen. In jedem Fall sollten die folgenden Ressourcen berücksichtigt werden:
Die
technologischen Ressourcen
, zum Beispiel Datenspeicher, verfügbare Rechenkraft sowie die Verfügbarkeit und die Kosten eventuell benötigter Softwarelizenzen
Die
benötigten Daten
, das heißt, es stellt sich die Frage, ob bereits ausreichend Daten vorhanden sind oder ob mit vertretbarem Aufwand im Rahmen des Projekts die benötigten Daten zu sammeln sind. Die Betrachtung besteht aus zwei Aspekten:
Ist die Anzahl der Datenpunkte ausreichend?
Hat man für jeden Datenpunkt die benötigten Informationen? Falls noch Daten gesammelt werden müssen, sollte man dies bei den Projektrisiken immer berücksichtigen.
Die
Arbeitszeit
, sowohl in Kalenderzeit als auch in Personenmonaten. Die Kalenderzeit ist die Dauer des Projekts. Für Projekte, deren Kalenderzeit weniger als ein Jahr ist, sollte man auch noch berücksichtigen, in welchen Monaten des Jahres das Projekt durchgeführt werden soll, da die üblichen Urlaubszeiten bedeuten können, dass Mitarbeiterinnen nicht wie erwartet zur Verfügung stehen. Wenn Projekte in einem internationalen Umfeld durchgeführt werden, sollte man hierbei auch die lokalen Gepflogenheiten der jeweiligen Projektpartner nicht vergessen. Personenmonate sind ein verbreitetes Mittel, um den Entwicklungsaufwand abzuschätzen, der für ein Projekt investiert wird. Zwei Mitarbeiterinnen, die je einen Monat am Projekt arbeiten, entsprechen zwei Personenmonaten. Man sollte bei der Betrachtung der Arbeitszeit aber nie vergessen, dass zwei Mitarbeiterinnen in der Regel nicht doppelt so effizient sind wie eine Mitarbeiterin. Diese Phänomen ist in der Softwareentwicklung auch als der
Mythical Man-Month
[
Brooks 1975
] bekannt.
Die
Mitarbeiterinnen
(gerne auch Human Resources genannt), das heißt die Personen, die für das Projekt zur Verfügung stehen. Hierbei sollte insbesondere betrachtet werden, ob das Fähigkeitsprofil der Mitarbeiterinnen zu den Anforderungen des Projekts passt.
Sofern ausreichend Ressourcen verfügbar und die Risiken kontrollierbar sind, kann das Projekt gestartet werden.
Beispiel:
Ein Kunde ist Besitzer eines Webshops für Kleidung. Der Kunde möchte gerne die Anzahl seiner Verkäufe durch Cross-Selling erhöhen, das heißt, Kunden sollen dazu gebracht werden, weitere Produkte in den Warenkorb zu legen. Unsere Aufgabe ist es, eine Anwendung hierfür zu entwickeln, die auf den vergangenen Verkaufsdaten basiert. Die Discovery könnte in etwa so aussehen:
Wir führen ein Interview mit dem Kunden durch, um herauszufinden, ob der Kunde bereits eine Idee hat, wie mehr Cross-Selling ermöglicht werden könnte. Wir finden heraus, dass der Kunde gezielte Werbung während des Einkaufs schalten möchte, sobald ein Produkt in den Warenkorb gelegt wird. Diese Information liefert uns eine Kernanforderung des Projekts, andernfalls wäre zum Beispiel auch E-Mail-Marketing denkbar gewesen.Wir schauen uns Webshops an, die bereits ähnliche Lösungen benutzen.Wir definieren die Problembeschreibung als das Ziel, geeignete Werbung vorherzusagen, basierend auf dem vergangenen Verhalten des Kunden, dem vergangenen Verhalten aller Kunden sowie dem aktuellen Inhalt des Warenkorbs.Wir identifizieren zwei wichtige Stakeholder: Den Besitzer des Webshops als Auftraggeber, Ansprechpartner auf Kundenseite und Domänenexperten.Die Kunden des Webshops, die für sich relevante Produkte kaufen wollen und eine gute User Experience (UX) bei der Benutzung der Software wünschen.Unpassende Werbung könnte die Benutzererfahrung verschlechtern, sehr gute Werbung sogar verbessern.
Wir identifizieren keine Probleme mit dem Status quo, die gelöst werden sollen. Es geht also um eine reine Optimierung der Einnahmen.Aus diesen Erkenntnissen definieren wir zwei konkrete Projektziele: Erhöhung der Anzahl der verkauften Produkte und dadurch Steigerung des UmsatzesGleichbleibende oder verbesserte UXDie Erfüllung der Projektziele soll durch die Beobachtung des Umsatzes sowie durch eine Umfrage unter den Benutzern bezüglich ihrer Zufriedenheit bestimmt werden. Das Projekt gilt als erfolgreich, wenn der Umsatz sich um mindestens 5 % erhöht und die Benutzerzufriedenheit sich nicht verschlechtert. Sie identifizieren eine mögliche Verschlechterung der Benutzerzufriedenheit, die zu einem Abfall des Umsatzes führt, als Hauptrisiko des Projekts.Als Daten stehen uns hauptsächlich die Transaktionen von vergangenen Einkäufen zur Verfügung. Diese Daten beinhalten, welche Kunden welche Produkte innerhalb einer Bestellung gekauft haben. Die Daten liegen in einer relationalen Datenbank vor. Weitere Daten stehen uns nicht zur Verfügung.Wir formulieren drei Hypothesen: Produkte, die in der Vergangenheit häufig zusammen gekauft wurden, werden auch in der Zukunft häufig zusammen gekauft.Es gibt saisonale Muster in den Verkaufsdaten (zum Beispiel für Winter- und Sommerkleidung), die relevant sind für die Werbung.Die Kategorien, durch die sich die Produkte beschreiben lassen, sind relevant für die Werbung, insbesondere die Marken und die Art der Kleidung.Wir sind der Meinung, dass die Ressourcen ausreichen, um eine Pilotstudie durchzuführen, in der die Machbarkeit von nützlichen Vorhersagen für Cross-Selling-Werbung geprüft wird. Eine detaillierte Evaluation der Benutzererfahrung sowie eine Operationalisierung der Ergebnisse für den produktiven Betrieb ist mit den zur Verfügung stehenden Ressourcen nicht realistisch. Im Falle einer erfolgreichen Machbarkeit der Vorhersagen wird dies in einem Folgeprojekt umgesetzt.Mit dem Abschluss der Discovery beginnt die technische Arbeit des Projekts, bei der die Daten für die Analyse vorbereitet werden (engl. preprocessing). Hierbei gibt es zwei wesentliche Ziele:
Die Infrastruktur für die Datenanalyse muss erstellt werden und alle relevanten Daten müssen in diese Infrastruktur geladen werden.
Der Data Scientist sollte ein tiefgehendes und detailliertes Verständnis der Daten erlangen.
Der Aufwand für die Vorbereitung der Infrastruktur hängt stark vom Projekt ab. Er kann nahezu trivial und mit wenigen Zeilen Quelltext erledigt sein oder mehrere Personenjahre an Ressourcen verschlingen. Ist das Datenvolumen relativ klein und die Daten können durch eine einzelne SQL-Abfrage geladen werden, ist diese Aufgabe in kürzester Zeit erledigt. Handelt es sich wiederum um ein Big-Data-Projekt, in dem die Daten erst noch gesammelt werden müssen oder wo der Zugriff auf die Daten schwierig ist (zum Beispiel aus Sicherheits- oder Datenschutzbedenken), kann dies extrem aufwendig sein.
Der grundsätzliche Prozess des Ladens von Daten in die Analyseinfrastruktur wird ETL genannt: Extract, Transform, Load. Zuerst werden die Daten von ihrem aktuellen Speicherort extrahiert. Dies bedeutet, dass der Code zum Laden der Daten aus Dateien und Datenbanken oder zum Sammeln von Daten aus anderen Quellen (zum Beispiel dem Internet durch »Scraping«) geschrieben wird. Sobald die Daten extrahiert sind, werden sie in das benötigte Format konvertiert. Diese Transformation beinhaltet üblicherweise auch die Qualitätskontrolle der Daten: Zum Beispiel kann man hier unvollständige oder nicht plausible Datenpunkte entfernen. Weiterhin müssen die Daten häufig restrukturiert und in andere Formate konvertiert werden. Das kann zum Beispiel bedeuten, dass Informationen aus verschiedenen Quellen integriert werden. Es kann aber auch heißen, dass Informationen neu aufgeteilt werden. Zum Beispiel könnte man den Inhalt von Blogposts in verschiedene Felder aufteilen: Titel, Inhalt und Kommentare. Bei textuellen Daten kann es auch herausfordernd sein, diese in ein einheitliches Textformat zu konvertieren, da es viele verschiedene Codierungen für Textdaten gibt, zum Beispiel ASCII, ISO-8859, UTF-8 und UTF-16, um nur einige gängige zu nennen. Ähnliche Probleme kann es bei Datumsformaten geben. Ob 04/05/21 sich auf den 4. Mai oder den 5. April bezieht, hängt davon ab, ob die amerikanische oder britische Konvention verwendet wird. Ob es sich um das Jahr 2021 oder 1921 handelt, hängt vom Zeitpunkt ab, an dem dieses Datum geschrieben wurde. Sobald alle Daten transformiert sind, können sie in die Analyseumgebung geladen werden.
Häufig kann man ETL auch in ELT abwandeln, indem man die Transformation und das Laden der Daten vertauscht. In diesem Fall werden die Rohdaten direkt in die Analyseumgebung geladen und benötigte Transformationen werden innerhalb der Analyseumgebung durchgeführt. Ob ETL oder ELT die bessere Wahl ist, hängt vom Anwendungsfall ab. Ein guter Grund, warum man ELT statt ETL nutzen sollte, besteht darin, dass die Transformationen so komplex sind, dass man sie ohne die Rechenkraft der Analyseumgebung nicht durchführen kann. Ein weiterer Vorteil von ELT ist, dass man verschiedene Transformationen ausprobieren und flexibel miteinander vergleichen kann. Zuletzt gibt es auch Anwendungen, die vom Zugriff auf die Rohdaten profitieren können, da diese zum Beispiel dann auch von Algorithmen als Merkmal verwendet werden können. Auf der anderen Seite ist ETL zu favorisieren, wenn die Transformationen sehr zeitaufwendig sind und nicht mehrfach bei jedem Laden der Daten durchgeführt werden sollen oder wenn man die Transformationen direkt bei einem Datenbankzugriff durchführen kann.
Ein weiterer wesentlicher Aspekt der Datenvorbereitung ist das detaillierte Verständnis der Daten. Dies bedeutet das Studium der Dokumentation der Daten. Sofern diese nicht vorhanden oder nicht ausreichend ist, müssen die Daten mithilfe von Domänenwissen interpretiert werden. Im Idealfall kennt der Data Scientist zum Abschluss dieser Phase alle Details der Daten, zum Beispiel die Bedeutung jeder Spalte in einer relationalen Datenbank oder welche Arten von Dokumenten es gibt und wie diese strukturiert sind. Diese Arbeit kann man auch als Lernen der Metadaten bezeichnen, also der Daten über die Daten. Zusätzlich zu den Metadaten sollten auch die Daten selbst erkundet werden – eine Aktivität, die häufig eng mit den Transformationen von ETL zusammenhängt. Hierzu betrachtet man zum Beispiel Statistiken und Visualisierungen (siehe Kap. 4). Hierdurch kann man beispielsweise Erkenntnisse über die Wahrscheinlichkeitsverteilungen der Daten gewinnen, ungültige Daten identifizieren oder Skaleneffekte entdecken und entfernen, um die Daten besser zu vereinheitlichen.
Diese detaillierte Betrachtung der Daten erlaubt es dem Data Scientist auch, zu erkennen, welche Daten wirklich wertvoll für das Projekt sind und welche Daten eventuell doch nicht benötigt werden. Hierbei muss man ein gesundes Mittelmaß finden: Auf der einen Seite geht man ein Risiko ein, wenn man Daten frühzeitig entfernt, da man etwas übersehen haben könnte und die Daten eventuell doch nützlich wären. Auf der anderen Seite reduziert man die Komplexität des Projekts, wenn weniger Daten vorhanden sind. Insbesondere wenn große Datenmengen entfernt werden können, kann sich der Analyseaufwand stark reduzieren.
Am Ende der Datenvorbereitung sind alle Daten für die Analyse verfügbar und alle benötigten Transformationen sind definiert und durchgeführt.
Beispiel:
Die Verkaufsdaten sind in einer relationalen Datenbank gespeichert, die 352.152 Transaktionen beinhaltet. Im Mittel wurden 2,3 Gegenstände in einer Transaktion gekauft. Für jede Transaktion sind ein Zeitstempel im ISO-8601-Format und ein pseudonymisierter Identifier des Benutzers, der die Gegenstände gekauft hat, verfügbar. In einer zweiten Tabelle werden die Informationen über die Gegenstände selbst gespeichert, unter anderem: der Preis und die Kategorien, denen ein Gegenstand zugeordnet ist (Herrenbekleidung, Damenbekleidung, Hose, Pullover, Socken, Herstellermarke). Es gibt noch weitere Daten, wie zum Beispiel die Bezahlart, diese werden jedoch als für dieses Projekt nicht relevant eingestuft und nicht für die Analyse verwendet.
Das Datenvolumen beträgt ca. ein Gigabyte. Daher entscheiden wir uns für einen ELT-Prozess, da das Laden der Daten aus der Datenbank nur etwa eine Minute dauert und man die Daten flexibel in der Analyseumgebung erkunden kann und währenddessen die benötigten Transformationen definiert.
Beim Erkunden der Daten entdecken wir 2.132 Transaktionen ohne Gegenstände. Diese entfernen wir, da es sich um ungültige Datenpunkte handelt. Außerdem stellen wir fest, dass die Kleidung einiger Marken nur selten gekauft werden. Daher fassen wir diese Marken in einer neuen Kategorie »Sonstige Marken« zusammen.
Wir bestimmen außerdem vier Repräsentationen der Transaktionen, die für die Cross-Selling-Analyse nützlich sein könnten:
Identisch zur Datenbank, das heißt direkt durch die verkauften Gegenstände.Die Gegenstände werden durch die Art der Kleidung ersetzt.Die Gegenstände werden durch die Marke ersetzt.Die Gegenstände werden durch die Kombination von der Art der Kleidung und der Marke ersetzt.Die verschiedenen Repräsentationen ermöglichen es Ihnen, das Cross-Selling auf bestimmte Kleidungstypen oder Marken zu fokussieren.
Das Ziel der Modellplanung ist das Design des Analysemodells. Hierzu muss man aus den verschiedenen Möglichkeiten, wie die Datenanalyse gestaltet werden kann, ein geeignetes Modell auswählen, das sowohl zu den Daten als auch zum Analyseziel passt. Es gibt verschiedene Aspekte, die bei der Modellauswahl berücksichtigt werden müssen. Das Projektziel gibt üblicherweise die grundsätzliche Art des Modells vor:
Assoziationsregeln
können benutzt werden, um Regeln zu finden, die relevante Beziehungen innerhalb von Transaktionen beschreiben (
Kap. 5
).
Clusteranalyse
ist dazu geeignet, Gruppierungen innerhalb von Daten zu finden (
Kap. 6
).
Klassifikation
wird benutzt, um vorherzusagen, zu welcher Kategorie Daten gehören (
Kap. 7
).
Regressionsmodelle
beschreiben den Zusammenhang zwischen Merkmalen der Daten und können benutzt werden, um kontinuierliche Werte vorherzusagen (
Kap. 8
).
Zeitreihenanalyse
berücksichtigt zeitliche Abhängigkeiten zwischen Datenpunkten, um zukünftige Entwicklungen abzuschätzen (
Kap. 9
).
Bei der Modellplanung muss man aus den vielen Möglichkeiten, wie man zum Beispiel ein Klassifikationsmodell erstellen kann, eine für das Projekt passende auswählen. Es gibt viele Aspekte, die diese Auswahl beeinflussen. Hier sind einige wichtige Fragen, deren Beantwortung bei der Modellauswahl hilft:
Ist es wichtig, dass man die Modelldetails als Mensch nachvollziehen kann, oder reicht es, wenn das Modell definierten Metriken gemäß gut ist? Ein
Whitebox
-Modell kann vom Data Scientist und eventuell sogar von Domänenexpertinnen benutzt werden, um die Logik, die das Modell verwendet, im Detail nachzuvollziehen. Dies kann zum Beispiel wichtig sein, damit die Nutzer des Modells in der Lage sind, Verantwortung für die Entscheidungen, die mithilfe der Modelle getroffen werden, zu übernehmen. Wenn dies für den Anwendungsfall als weniger wichtig betrachtet wird, kann man auch
Blackbox
-Modelle verwenden. Hier versteht man dann zwar in der Regel nicht, wie die Entscheidungen zustande gekommen sind, dafür sind solche Modelle häufig präziser. Der Grund für die höhere Präzision liegt darin, dass die interne Komplexität nicht von der Interpretierbarkeit beschränkt ist. Ein Beispiel für ein White-box-Modell sind Entscheidungsbäume, in denen anhand einfacher Regeln (größer, kleiner, gleich) Merkmale in einer festgelegten Reihenfolge bewertet werden, um zu einer Entscheidung zu gelangen. Ein Beispiel für Blackbox-Modelle sind
tiefe neuronale Netze
(engl.
Deep Neural Network
), in denen es Millionen von Parametern gibt, die eine für Menschen nicht nachvollziehbare mathematische Funktion beschreiben. Eventuell ist die Nachvollziehbarkeit der Entscheidungen sogar ein zwingendes Kriterium, wie es derzeit (für einige Anwendungen) im Rahmen einer neuen EU-Richtlinie für künstliche Intelligenz angedacht wird.