Vorwort zur 1. Auflage
Data Science
Data Scientist wurde bereits als der »sexiest Job des 21. Jahrhunderts« (https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century) bezeichnet, vermutlich von jemandem, der nie eine Feuerwache besucht hat. Nichtsdestotrotz ist Data Science ein aktuelles und wachsendes Feld, und man muss kein Meisterdetektiv sein, um zu prognostizieren, dass wir in den nÀchsten zehn Jahren Millionen und Abermillionen mehr Data Scientists benötigen werden, als es zurzeit gibt.
Aber was ist Data Science eigentlich? SchlieĂlich können wir keine Data Scientists ausbilden, wenn wir Data Science nicht einmal definieren können. Laut einem in der Branche bekannten Venn-Diagramm (http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram) setzt sich Data Science zusammen aus:
- der FĂ€higkeit zu hacken,
- dem Wissen ĂŒber Mathematik und Statistik sowie
- substanziellem Expertenwissen.
Obwohl ich ursprĂŒnglich ein Buch ĂŒber alle drei Dinge schreiben wollte, wurde mir schnell klar, dass allein eine grĂŒndliche Abhandlung ĂŒber das »substanzielle Expertenwissen« Zehntausende Seiten benötigen wĂŒrde. Daher beschloss ich, mich auf die ersten beiden Punkte zu beschrĂ€nken. Mein Ziel ist es, Ihre FĂ€higkeit zu hacken so zu entwickeln, dass Sie gleich damit beginnen können, Data Science praktisch anzuwenden. Mein Ziel ist es ebenfalls, Sie mit Mathematik und Statistik im Zentrum von Data Science vertraut zu machen.
Das ist ein recht ambitioniertes Ziel fĂŒr ein Buch. Der beste Weg, hacken zu lernen, ist, Dinge zu hacken. Beim Lesen dieses Buchs werden Sie einen guten Einblick darin bekommen, auf welchem Weg ich Dinge hacke. Das muss nicht zwangslĂ€ufig der beste Weg fĂŒr Sie sein, Dinge zu hacken. Sie werden Kenntnisse ĂŒber einige von mir genutzte Werkzeuge erlangen, die nicht unbedingt die bestmöglichen Werkzeuge fĂŒr Sie sind. Sie werden kennenlernen, wie ich mich Datenproblemen nĂ€here, fĂŒr Sie gibt es aber vielleicht bessere AnsĂ€tze. Meine Absicht (und Hoffnung) ist, dass meine Beispiele Sie beflĂŒgeln werden, Dinge selbst auf Ihre eigene Weise auszuprobieren. SĂ€mtlicher Code und alle Daten zu diesem Buch sind auf GitHub (https://github.com/joelgrus/data-science-from-scratch) verfĂŒgbar, sodass Sie gleich beginnen können.
Analog dazu besteht der beste Weg, Mathematik zu lernen, darin, Mathematik zu betreiben. Dieses Buch ist aus RĂŒcksicht auf den Leser kein Mathematikbuch geworden, und die meiste Zeit werden wir keine »Mathematik betreiben«. Allerdings können Sie sich ohne Grundkenntnisse in Wahrscheinlichkeit, Statistik und linearer Algebra nicht ernsthaft mit Data Science auseinandersetzen. Daher werden wir an angemessener Stelle in mathematische Formeln, Denkweisen, Axiome und in die Zeichentrickversionen groĂer mathematischer Konzepte eintauchen. Ich hoffe, Sie fĂŒrchten sich nicht davor, mit mir hineinzuspringen.
Im Verlauf der Kapitel hoffe ich, Ihnen ein GefĂŒhl fĂŒr den SpaĂ am Spielen mit Daten zu vermitteln, weil das Spielen mit Daten eben SpaĂ macht! (Besonders im Vergleich zu einigen Alternativen wie dem Vorbereiten der SteuererklĂ€rung oder dem Kohlebergbau.)
Bei null starten
Es gibt etliche Programmbibliotheken, Frameworks, Module und Werkzeugsammlungen, die die verbreitetsten (und auch die exotischsten) Algorithmen und Techniken fĂŒr Data Science beinhalten. Sobald Sie ein Data Scientist geworden sind, haben Sie eine innige Freundschaft mit NumPy, scikit-learn, pandas und einer Palette weiterer Bibliotheken geschlossen. Diese eignen sich gut, um Data Science zu betreiben. Sie sind aber auch hilfreich, wenn es darum geht, mit Data Science zu beginnen, ohne ĂŒberhaupt etwas davon zu verstehen.
In diesem Buch werden wir uns Data Science von Grund auf nĂ€hern. Das bedeutet, wir werden uns Werkzeuge selbst bauen und Algorithmen von Hand implementieren, um sie besser zu verstehen. Ich habe viel ĂŒber klare, gut kommentierte und verstĂ€ndliche Implementierungen und Beispiele nachgedacht. In den meisten FĂ€llen werden unsere selbst gebauten Werkzeuge erhellend, aber unpraktisch sein. Sie werden fĂŒr kleine SandkastendatensĂ€tze gut funktionieren, aber an solchen mit »InternetausmaĂen« klĂ€glich scheitern.
Im Verlauf des Buchs werde ich Sie auf Bibliotheken hinweisen, mit denen Sie diese Techniken auf gröĂere DatensĂ€tze anwenden können. Wir werden diese hier aber nicht verwenden.
Es gibt eine gesunde Diskussion darĂŒber, welche die beste Programmiersprache ist, um Data Science zu lernen. Viele meinen, dies sei die Statistikprogrammiersprache R. (Wir nennen sie die »Leute auf dem Holzweg«.) Einige andere empfehlen Java oder Scala. Meiner Meinung nach ist jedoch Python die erste Wahl.
Python besitzt mehrere Eigenschaften, die sie zu einer gut geeigneten Sprache zum Lernen (und Betreiben) von Data Science machen:
- Python ist kostenlos.
- Es ist relativ einfach, darin zu programmieren (und insbesondere den Code zu verstehen).
- Es gibt zahlreiche nĂŒtzliche Bibliotheken fĂŒr Data Science in Python.
Ich zögere, Python meine Lieblingsprogrammiersprache zu nennen. Es gibt andere Sprachen, die ich angenehmer oder besser entworfen finde oder bei denen es mir einfach mehr Spaà macht, Code zu schreiben. Dennoch lande ich bei jedem neuen Data-Science-Projekt wieder bei Python. Jedes Mal, wenn ich schnell einen lauffÀhigen Prototyp schreiben muss, lande ich bei Python. Und jedes Mal, wenn ich Konzepte von Data Science klar und verstÀndlich demonstrieren möchte, lande ich bei Python. Deshalb verwendet dieses Buch Python.
Das Ziel dieses Buchs ist nicht, Ihnen Python beizubringen (aber es ist so gut wie sicher, dass Sie beim Lesen etwas Python lernen werden). Ich werde Sie begleiten durch einen Crashkurs von der LĂ€nge eines Kapitels, der die fĂŒr unsere Zwecke wichtigsten Eigenschaften hervorhebt. Sollten Sie aber gar nichts ĂŒber das Programmieren in Python (oder ĂŒber das Programmieren im Allgemeinen) wissen, benötigen Sie möglicherweise begleitend zum Buch ein Tutorial wie etwa »Programmieren lernen mit Python« von Allen B. Downey aus dem OâReilly Verlag.
Der Rest unserer EinfĂŒhrung in Data Science wird genau diesen Ansatz wĂ€hlen â dort in die Details gehen, wo es unausweichlich oder erhellend ist, und ansonsten Ihnen die Details zur eigenen Erkundung ĂŒberlassen (oder zum Nachschlagen auf Wikipedia).
Im Verlauf der Jahre habe ich so manchen Data Scientist ausgebildet. Auch wenn nicht alle von ihnen weltumwĂ€lzende Daten-Ninja-Rockstars geworden sind, habe ich alle als bessere Data Scientists entlassen, als ich sie ursprĂŒnglich vorfand. Dabei habe ich den Glauben gewonnen, dass jeder mit etwas mathematischer Begabung und ein paar ProgrammierfĂ€higkeiten sĂ€mtliche Grundvoraussetzungen zum Betreiben von Data Science erfĂŒllt. Notwendig sind ein aufgeschlossener Geist, die Bereitschaft zu harter Arbeit und dieses Buch. Darum dieses Buch.
KAPITEL 1
EinfĂŒhrung
»Daten! Daten! Daten!«, schrie er ungeduldig. »Ohne Lehm kann ich keine Ziegel herstellen.«
â Arthur Conan Doyle
Der Aufstieg der Daten
Wir leben in einer Welt, die in Daten ertrinkt. Webseiten erfassen jeden Klick jedes Benutzers. Ihr Smartphone speichert Ihren Aufenthaltsort und Ihr Tempo jede einzelne Sekunde des Tages. »Quantified Selfer« tragen aufgemotzte Schrittmesser, die Herzfrequenz, Bewegungsgewohnheiten, ErnĂ€hrung und Schlafzyklen registrieren. Intelligente Autos sammeln Informationen ĂŒber Fahrgewohnheiten, intelligente HĂ€user sammeln Informationen ĂŒber Lebensgewohnheiten, und intelligente Marketingleute sammeln Konsumgewohnheiten. Das Internet selbst stellt ein gewaltiges Netzwerk des Wissens dar, das (unter anderem) eine enorme EnzyklopĂ€die mit Querverweisen darstellt â domĂ€nenspezifische Datenbanken ĂŒber Filme, Musik, Sportergebnisse, FlippergerĂ€te, Memes und Cocktails, auĂerdem viel zu viele Behördenstatistiken (einige davon sind sogar wahr!) von viel zu vielen Regierungen, bis Ihnen schwindelig wird.
Vergraben in diesen Daten sind die Antworten auf unzÀhlige Fragen, die niemand zuvor zu fragen wagte. In diesem Buch werden Sie lernen, wie man sie findet.
Was ist Data Science?
Ein Witz sagt, dass ein Data Scientist jemand ist, der mehr ĂŒber Statistik weiĂ als ein Informatiker und mehr ĂŒber Informatik als ein Statistiker. (Ich habe nicht gesagt, dass es ein guter Witz ist.) TatsĂ€chlich sind einige Data Scientists â fĂŒr alle praktischen Belange â Statistiker, wĂ€hrend andere kaum von Softwareentwicklern zu unterscheiden sind. Einige sind Experten fĂŒr maschinelles Lernen, wĂ€hrend andere nicht einmal den Weg zum KĂŒhlschrank maschinell lernen könnten. Einige haben Doktortitel und eindrucksvolle Publikationslisten, wĂ€hrend andere nie einen akademischen Fachartikel gelesen haben (Schande ĂŒber sie). Kurz, egal wie Sie Data Science definieren, Sie werden Praktiker finden, auf die diese Definition ĂŒberhaupt nicht passt.
Das soll uns aber nicht davon abhalten, es zu versuchen. Wir sagen einfach, dass ein Data Scientist jemand ist, der Erkenntnisse aus ch...