Grundprinzipien der Datenanalyse mit Python
E-Book, Deutsch, 401 Seiten
ISBN: 978-3-96010-337-0
Verlag: O'Reilly
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Joel Grus ist Forschungsingenieur am Allen Institute for Artificial Intelligence. Zuvor arbeitete er als Softwareentwickler bei Google und als Data Scientist für eine Reihe von Start-ups. Er lebt in Seattle, wo er regelmäßig an Treffen zu Datenanalysethemen teilnimmt. Er schreibt gelegentlich Artikel für sein Blog joelgrus.com und twittert täglich unter @joelgrus ('twitter.com/joelgrus').
Weitere Infos & Material
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 chaotischen Daten gewinnt. Die heutige Welt ist voll von Menschen, die Daten in Erkenntnis umwandeln möchten. Das Datingportal OkCupid beispielsweise bittet seine Mitglieder, Tausende von Fragen zu beantworten, um die passendsten Partner für sie zu finden. Aber es wertet diese Ergebnisse auch aus, um unschuldig klingende Fragen zu entwickeln, mit denen sie herausbekommen können, wie wahrscheinlich es ist, dass jemand beim ersten Date mit Ihnen ins Bett geht (https://theblog.okcupid.com/the-best-questions-for-a-first-date-dba6adaa9df2). Facebook fragt Sie nach Ihrer Heimatstadt und Ihrem gegenwärtigen Aufenthaltsort – vorgeblich, um es Ihren Freunden zu erleichtern, Sie zu finden und sich zu befreunden. Aber Facebook analysiert die Orte auch, um in der globalen Migration (https://www.facebook.com/notes/facebook-data-science/coordinated-migration/10151930946453859) und den Wohnorten von Footballfans (https://www.facebook.com/notes/facebook-data-science/nfl-fans-on-facebook/10151298370823859) Muster zu erkennen. Target, ein großes Unternehmen im Einzelhandel, verfolgt Ihre Einkäufe und Interaktionen sowohl online als auch im Geschäft. Sie verwenden diese Daten zur Feststellung (https://www.nytimes.com/2012/02/19/magazine/shopping-habits.html), welche ihrer Kundinnen schwanger sind, um ihnen besser Babyprodukte präsentieren zu können. An der Wahlkampagne von Obama nahmen 2012 Dutzende von Data Scientists teil, die Daten durchwühlten und damit experimentierten, um Wähler mit besonderem Zuwendungsbedarf zu identifizieren, optimale auf Spender zugeschnittene Spendenaufrufe zu starten und Aufrufe zur Wahlbeteiligung auf die vielversprechendsten Gegenden zu fokussieren. Und im Jahr 2016 probierte die Trump-Kampagne eine große Zahl von Online-Ads aus (https://www.wired.com/2016/11/facebook-won-trump-election-not-just-fake-news/) und analysierte dann die Daten, um herauszufinden, welche funktionieren und welche nicht. Bevor Sie sich nun völlig abgeschreckt fühlen: Einige Data Scientists setzen ihre Fähigkeiten gelegentlich ein, um Gutes zu tun – etwa um die öffentliche Verwaltung durch Daten effektiver zu machen (https://www.marketplace.org/2014/08/22/tech/beyond-ad-clicks-using-big-data-social-good), Obdachlosen zu helfen (https://dssg.uchicago.edu/2014/08/20/tracking-the-paths-of-homelessness/) und die Gesundheitsversorgung zu verbessern (https://plus.google.com/communities/109572103057302114737). Es wird Ihrer Karriere allerdings gewiss nicht schaden, wenn Sie mit Vergnügen die beste Möglichkeit austüfteln, Leute zum Anklicken von Werbebannern zu bewegen. Ein motivierendes Szenario: DataSciencester
Herzlichen Glückwunsch! Sie wurden soeben als Leiter der Abteilung für Data Science bei DataSciencester angeheuert, dem sozialen Netzwerk für Data Scientists. Als ich die erste Auflage dieses Buchs schrieb, dachte ich, dass ein »soziales Netzwerk für Data Scientists« sehr nett, aber auch sehr hypothetisch wäre. Tatsächlich wurden jedoch seitdem soziale Netzwerke für Data Scientists geschaffen, und Risikokapitalgeber sammelten viel mehr Geld ein, als ich mit diesem Buch je verdient habe. Dahinter steckt vermutlich eine wertvolle Lektion über die verrückten Ideen von Data Scientists und das Veröffentlichen von Büchern. Obwohl für Data Scientists geschaffen, hat DataSciencester bisher keine Mühen in die eigenen Data-Science-Praktiken investiert. (Fairerweise muss gesagt werden, dass DataSciencester als Produkt nicht real existiert.) Dies wird Ihre Aufgabe sein! Im Verlauf dieses Buchs werden Sie Data-Science-Methoden dadurch kennenlernen, dass Sie die Aufgaben an Ihrem neuen Arbeitsplatz bewältigen. Bisweilen werden wir uns direkt von Nutzern eingegebene Daten anschauen, bisweilen durch Interaktionen von Nutzern mit der Webseite generierte Daten und einige Male sogar Daten aus von uns entworfenen Experimenten. Weil DataSciencester großen Wert auf die »Marke Eigenbau« legt, werden wir unsere Werkzeuge von Grund auf neu entwickeln. Am Ende werden Sie ein sehr solides Verständnis von den Data-Science-Grundlagen bekommen haben. Sie werden bereit sein, Ihre Fähigkeiten in einer Firma mit einer weniger heiklen Leitlinie einzusetzen oder auf eine für Sie interessante Fragestellung anzuwenden. Willkommen an Bord und viel Glück! (Freitags dürfen Sie hier Jeans tragen, und die Toiletten sind am Ende des Korridors auf der rechten Seite.) Finden von Schlüsselpersonen Es ist Ihr erster Arbeitstag bei DataSciencester, und der Vizepräsident für Netzwerkarbeit steckt voller Fragen über Ihre Nutzer. Bisher hatte er niemanden, den er fragen konnte, und daher ist er begeistert, Sie dabeizuhaben. Insbesondere möchte er herausbekommen, welche die »Schlüsselpersonen« unter den Data Scientists sind. Dazu stellt er Ihnen eine vollständige Kopie des Netzwerks von DataSciencester zur Verfügung. (Im wirklichen Leben übergibt man Ihnen die benötigten Daten eher selten. Kapitel 9 beschäftigt sich mit dem Beschaffen von Daten.) Wie sieht diese Kopie der Netzwerkdaten aus? Sie besteht aus einer Liste von Nutzern, in der für jeden Nutzer ein dict mit einer id (eine Zahl) und einem Namen (name) angelegt ist. Aufgrund eines großen kosmischen Zufalls reimen sich die Namen mit der englisch ausgesprochenen id des Nutzers: users = [ { "id": 0, "name": "Hero" }, { "id": 1, "name": "Dunn" }, { "id": 2, "name": "Sue" }, { "id": 3, "name": "Chi" }, { "id": 4, "name": "Thor" }, { "id": 5, "name": "Clive" }, { "id": 6, "name": "Hicks" }, { "id": 7, "name": "Devin" }, { "id": 8, "name": "Kate" }, { "id": 9, "name": "Klein" } ] Der Vizepräsident gibt Ihnen auch noch Daten über »Freundschaften« als eine Liste von id-Paaren: friendship_pairs = [(0, 1), (0, 2), (1, 2), (1, 3), (2, 3), (3, 4), (4, 5), (5, 6), (5, 7), (6, 8), (7, 8), (8, 9)] Zum Beispiel zeigt das Tupel (0, 1) an, dass der Data Scientist mit der id 0 (Hero) und der Data Scientist mit der id 1 (Dunn) befreundet sind. Das komplette Netzwerk ist in Abbildung 1-1 dargestellt. Abbildung 1-1: Das DataSciencester-Netzwerk Wir haben die Freundschaften als Liste aus Paaren abgelegt. Damit lässt sich allerdings nicht sehr gut arbeiten. Um alle Freundschaften von Nutzer 1 zu finden, müssen Sie über jedes Paar iterieren und nach solchen mit der 1 suchen. Haben Sie viele Paare, würde das sehr lange dauern. Lassen Sie uns stattdessen ein...