diff --git a/better-bibtex.sqlite b/better-bibtex.sqlite index e31f739..bf750a0 100644 Binary files a/better-bibtex.sqlite and b/better-bibtex.sqlite differ diff --git a/storage/DMHAM693/.zotero-ft-cache b/storage/DMHAM693/.zotero-ft-cache new file mode 100644 index 0000000..edf7b46 --- /dev/null +++ b/storage/DMHAM693/.zotero-ft-cache @@ -0,0 +1,1633 @@ +Stefan Selle +Data Science Training – Supervised Learning +Ein praktischer Einstieg ins überwachte maschinelle Lernen + +Data Science Training – Supervised Learning + +Stefan Selle +Data Science Training – Supervised Learning +Ein praktischer Einstieg ins überwachte maschinelle Lernen + +Stefan Selle WiWi FG Wirtschaftsinformatik HTW Saarbrücken Saarbrücken, Deutschland + +ISBN 978-3-662-67959-3 + +ISBN 978-3-662-67960-9 (eBook) + +https://doi.org/10.1007/978-3-662-67960-9 + +Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über https://portal.dnb.de abrufbar. + +© Der/die Herausgeber bzw. der/die Autor(en), exklusiv lizenziert an Springer-Verlag GmbH, DE, ein Teil von Springer Nature 2024 + +Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von allgemein beschreibenden Bezeichnungen, Marken, Unternehmensnamen etc. in diesem Werk bedeutet nicht, dass diese frei durch jede Person benutzt werden dürfen. Die Berechtigung zur Benutzung unterliegt, auch ohne gesonderten Hinweis hierzu, den Regeln des Markenrechts. Die Rechte des/der jeweiligen Zeicheninhaber*in sind zu beachten. Der Verlag, die Autor*innen und die Herausgeber*innen gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag noch die Autor*innen oder die Herausgeber*innen übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral. + +Planung/Lektorat: Leonardo Milla Springer Vieweg ist ein Imprint der eingetragenen Gesellschaft Springer-Verlag GmbH, DE und ist ein Teil von Springer Nature. Die Anschrift der Gesellschaft ist: Heidelberger Platz 3, 14197 Berlin, Germany + +Das Papier dieses Produkts ist recycelbar. + +Für Stefanie + +Vorwort +Liebe Leserin, lieber Leser, herzlich Willkommen zu diesem spannenden Abenteuer in die Welt der Data Science! Dieses Buch wurde speziell für dich geschrieben, um dich dazu zu ermutigen, dich mit einem der interessantesten Themen unserer Zeit auseinanderzusetzen. Egal, ob du bereits erste Kenntnisse in der Datenanalyse gesammelt hast oder gerade erst anfängst, dich für dieses Thema zu interessieren, dieses Buch bietet dir eine solide Grundlage, um Wissen in diesem Bereich zu erwerben und zu erweitern. Egal, ob du ein Mathecrack bist oder nur die vier Grundrechenarten beherrscht, dieses Buch ermöglicht dir, deine Kenntnisse in der bunten Welt der Algorithmen einzusetzen und zu vertiefen. Egal, ob du programmieren kannst – vorzugsweise in Python – oder nicht, dieses Buch zeigt dir einen Zugang zu Datenanalysen auf, und zwar auf zwei alternativen Wegen. In jedem Fall kannst du praktische Kompetenzen aufbauen und deine kreativen Fähigkeiten entfalten. Du lernst, Data Science-Probleme zu erforschen und innovative Lösungen zu entwickeln. +In unserer digitalisierten Welt, in der Daten allgegenwärtig sind, spielt Data Science eine entscheidende Rolle. Es ermöglicht uns, tiefe Einblicke in komplexe Probleme zu gewinnen, Muster zu erkennen und fundierte Entscheidungen zu treffen. Die Möglichkeiten, die sich durch Data Science eröffnen, sind grenzenlos und beeinflussen bereits jetzt viele Aspekte unseres täglichen Lebens, sei es in der Medizin, Wirtschaft, Umweltforschung oder auch im Bereich der Unterhaltung. +Ein besonderes Merkmal dieses Buches ist sein interaktiver Ansatz. Es fungiert als Selbstlernkurs, der es dir ermöglicht, durch praktische Übungen zu lernen. Du wirst nicht nur theoretisches Wissen erlangen, sondern auch direkt in die Welt der Daten eintauchen. Die Übungen bauen aufeinander auf und sind so konzipiert, dass du schnell Fortschritte machst und immer mehr Vertrauen in deine eigenen Fähigkeiten gewinnst. Denk daran, dass Data Science mehr ist als nur das Analysieren von Zahlen und Diagrammen. Es geht darum, kreative Lösungen für reale Probleme zu finden, Muster zu entdecken und Geschichten mit Daten zu erzählen, eigene Fragen zu stellen und neue Wege zu gehen. Data Science erfordert kritisches Denken, Neugierde und die Bereitschaft, aus Fehlern zu lernen. +VII + +VIII + +Vorwort + +Für die Bearbeitung der Übungen benötigst du einen Werkzeug, um ein möglichst großen Nutzen aus diesem Training zu erzielen. Zwei öffentlich zugängliche, lizenzfreie und für alle gängigen Betriebssysteme entwickelte Tools kannst du hierfür einsetzen. Wenn du bereits programmieren kannst, dann solltest du die Python-Distribution Anaconda verwenden, ansonsten die KNIME Analytics Platform. Eine weitere Besonderheit dieses Buches ist die Einbettung aller Übungen in eine durchgängige Fallstudie innerhalb einer … +Rahmenhandlung Wir begleiten Anna und Karl während ihrer Traineephase bei der International Insurance Incorporated (i3). Dabei sehen wir den beiden Protagonisten über die Schulter, wie sie ihr erstes Data-Science-Projekt durchführen. Das ist vergleichbar mit einem Apprenticeship, also mit dem in die Lehre gehen. Diese Art, implizites Wissen von Generation zu Generation weiterzugeben, ist seit Menschengedenken bekannt. Im Mittelalter entstanden Zünfte und Gilden, um diese Form der Wissensweitergabe zu organisieren. Der Fokus lag und liegt auf einer praktischen Berufsausbildung. Das ist in diesem Training ähnlich, denn Data Science ist nicht nur Wissenschaft, sondern auch Kunst, eine Art Handwerkskunst, also Data Art. +Anna kann bereits Python programmieren und deshalb benutzt sie das Jupyter Notebook von Anaconda zum Erstellen ihrer Computerprogramme. Karl dagegen hat keinerlei Programmiererfahrung. Er verwendet die KNIME Analytics Platform, ein grafisches Tool zum Erstellen von Workflows zur Datenanalyse. Max unterstützt Anna und Karl auf ihrem Weg. Als Coach diskutiert Max häufig mit den beiden Trainees und gibt ihnen Ratschläge und Feedback, wann immer es notwendig ist. Darüber hinaus stellt er Erklärvideos zu den Werkzeugen auf der Webseite zum Buch bereit. Max ist auch Mentor und fördert die beiden Trainees bei ihrer persönlichen Entwicklung. +Die in diesem Buch relevanten Data-Science-Methoden führen wir als Gespräche zwischen den Protagonisten ein, sodass die zugrundeliegenden Ideen und Konzepte einfach dargestellt sind. Wer jedoch an einem tiefergreifenden Verständnis interessiert ist und in weiterführende Details eintauchen möchte, der benötigt spezielle mathematische und statistische Kenntnisse. Im Buch sind diese Teile grau hinterlegt und im Anhang ist ein knappes Mathe-Statistik-Repetitorium zu den wichtigsten Notationen gegeben. Der Anhang bildet zusammen mit dem Glossar auch ein kleines Nachschlagewerk. +Das Data-Science-Projekt zu diesem Training basiert auf dem Titanic-Wettbewerb der Plattform Kaggle, der als Hello-World-Beispiel des maschinellen Lernens (ML) gilt. In diesem Wettbewerb sollen wir ein ML-Modell trainieren, um herauszufinden, welche Passagiere die Katastrophe überlebt haben. Sophia ist die vierte im Team Data Science Training bei der i3-Versicherung. Sie ist ein großer Titanic-Fan und steuert bei passenden Gelegenheiten interessante Anekdoten zu einigen der Passagieren als Hintergrundinformationen bei. Diese historischen Persönlichkeiten sind inzwischen verstorben und wir geben zu ihnen die verwendeten Kaggle-Daten als Fußnoten in diesem Buch an. Darüber hinaus + +Vorwort + +IX + +nutzen wir Fußnoten auch für kurze biografische Angaben zu den Besatzungsmitgliedern der Titanic, Fotografen, Wissenschaftlern und Unternehmern, die ebenfalls bereits verstorben sind, um sie auf diese Art und Weise zu ehren. Alle biografischen Angaben stammen von der Online-Enzyklopädie Wikipedia. In den Fußnoten wird diese Quelle nicht explizit aufgeführt. Einige wenige Ausnahmen stellen lebende Legenden dar, wie bspw. Träger von renommierten Preisen oder besondere Innovatoren, die ebenfalls eine Fußnote bekommen haben. +Max und Sophia lassen die beiden Trainees immer mal wieder über den sog. Tellerrand hinausblicken, um Denkanstöße zu geben. Data Science ist eine interdisziplinäre Wissenschaft, welche die Fachgebiete Mathematik und Statistik, Informatik/IT sowie Betriebswirtschaft bzw. Domänenwissen umfasst. Data Science greift insb. auf Methoden des maschinellen Lernens und der Softwareentwicklung zurück. Der Data-Science-Teller ist also sowieso schon sehr groß. Aus diesem Grund ist das Data Science Training als mehrteilige Serie bzw. mehrbändige Reihe entwickelt worden. Dieses Buch ist der Auftakt davon. Ein praktischer Einstieg. +Kann dieses Lehrbuch auch im Rahmen einer Vorlesung eingesetzt werden? Nein! Denn Vorlesungen sind tot. Dabei gab es sie Jahrhunderte lang. Dozenten lasen Studierenden aus Büchern vor. Das war insofern sinnvoll und erforderlich, als dass der Zugang zu Büchern und dem darin enthaltenen expliziten Wissen beschränkt war. Vor der Mitte des 15. Jahrhunderts wurden Bücher noch handschriftlich kopiert. Diese Arbeit übernahmen i. d. R. Nonnen und Mönche in Klöstern. Um etwa 1450 erfand Johannes Gutenberg1 den Buchdruck. Diese Erfindung löste eine Revolution aus. Von nun an konnten Bücher mittels Maschinen einfach und fehlerfrei kopiert werden. Wissen verbreitete sich rasant. Die Bibel war der erste Bestseller der Welt. Der technologische Fortschritt ging weiter. Im Jahr 1969 betrat die Menschheit den Mond. Im gleichen Jahr, fast unbemerkt, wurde ein Rechner der University of California, Los Angeles (UCLA) mit einem Rechner des Stanford Research Institutes (SRI) in Menlo Park, im südlichen Teil der Bucht von San Francisco, also in einer Region, die kurze Zeit später Silicon Valley genannt wurde, miteinander verbunden. Nachdem die beiden Buchstaben L und O übertragen wurden, stürzte der Empfangsrechner ab. Etwas später konnte der Bug gefixt und der Loginbefehl dann erfolgreich übertragen werden. Das war die Geburtsstunde des Internets. Die Nutzung dieser neuen Netzwerktechnologie war jedoch zunächst auf das US-Militär und ausgewählten Forschungseinrichtungen beschränkt. Anfang der 1990er Jahre entwickelte Tim Berners-Lee2 am europäischen Kernforschungszentrum CERN das World Wide Web (WWW) und die Auszeichnungssprache Hypertext Markup Language (HTML). Zur gleichen Zeit wurde das Internet für kommerzielle Anwendungen + +1 Johannes Gensfleisch zur Laden zum Gutenberg, um 1400 in Mainz, † 03.02.1468 ebenda, deutscher Erfinder. 2 Sir Timothy John Berners-Lee, 08.06.1955 in London, britischer Physiker und Informatiker sowie Träger des Turing Awards (2016). + +X + +Vorwort + +geöffnet. Diese nächste Revolution verwendete nun digitale Daten. Um sich in den Weiten des Webs zurechtzufinden, sind Suchmaschinen unabdingbare, hilfreiche Werkzeuge. Die Doktoranden Larry Page3 und Sergey Brin4 der Stanford University starteten 1998 die Suchmaschine Google. Im Jahr 2007 stellte Steve Jobs5 das erste iPhone vor. Mit Hilfe von Smartphones haben wir das Internet jetzt also immer mit dabei. Diese mobile Technologie hat für einen weiteren Schub zur Produktion und Verbreitung von Daten und Informationen gesorgt. Am 30. November 2022 wurde dann ein neuer Meilenstein erreicht. An diesem Tag öffneten Sam Altman6 und OpenAI die Anwendung ChatGPT für die Öffentlichkeit. Dieser auf KI basierende Chatbot ist im Begriff, die Art und Weise, wie wir zukünftig auf Daten und Informationen zugreifen, grundlegend zu verändern. +Alle diese technischen Innovationen und Revolutionen führten dazu, dass sich auch der Wissenserwerb und der Kompetenzaufbau im Laufe der Zeit gewandelt haben. Den Nürnberger Trichter gibt es nicht. Wir können auch nicht einfach eine Kampfsportart oder andere neue Fertigkeiten, neudeutsch Skills, so erlernen wie Neo im Film Matrix. Lernen ist ein Prozess. Im Zentrum stehen die Lernenden. Dozenten rücken als Lernhelfer in den Hintergrund und sind vor allem keine Vorleser mehr. Natürlich gibt es noch Vorlesungen, aber der Begriff ist irreführend. Heutzutage sind Lehrveranstaltungen bzw. Lernveranstaltungen gemeint. Lehre und Lernen sind im Grunde zwei Seiten einer Medaille. +Kann dieses Lernbuch auch im Rahmen einer Veranstaltung eingesetzt werden? Ja! Moderne didaktische Konzepte basieren auf dem Prinzip Constructive Alignment. Damit stimmen wir angestrebte Lernziele, Prüfungsformen sowie Lehr- und Lernmethoden aufeinander ab. Der Aufbau bzw. die Weiterentwicklung von Handlungskompetenz ist ein übergeordnetes allgemeines Ziel, das sich auf viele Lernveranstaltungen anwenden lässt. Handlungskompetenz unterteilt sich in Sachkompetenz, Methodenkompetenz, Selbstkompetenz und Sozialkompetenz. Eine sinnvolle Prüfungsform, um Handlungskompetenz zu messen und bewerten, ist die Projektarbeit. Im letzten Kapitel dieses Buches stellen wir daher weitere Data-Science-Wettbewerbe der Plattform Kaggle vor, die sich bspw. als Aufgabenstellungen für solche Projektarbeiten eignen. Zur Vorbereitung auf ein Projektstudium können die Studierenden dieses Lernbuch oder Teile davon durcharbeiten. Auf der Webseite zum Buch sind Lösungsvorschläge zu allen Kapiteln bzw. Lerneinheiten bereitgestellt, also Jupyter-Notebooks und KNIME Workflows. + +3 Lawrence Edward Page, 26.03.1973 in East Lansing (MI), US-amerikanischer Informatiker und Unternehmer, Mitbegründer und ehemaliger CEO von Alphabet Inc. 4 Sergey Brin, 21.08.1973 in Moskau, US-amerikanischer Informatiker und Unternehmer, Mitbegründer und ehemaliger Präsident von Alphabet Inc. 5 Steven Paul Jobs, 24.02.1955 in San Francisco (CA), † 05.10.2011 in Palo Alto (CA), USamerikanischer Unternehmer, Mitbegründer und CEO von Apple Inc. 6 Samuel H. Altman, 22.04.1985 in Chicago (IL), US-amerikanischer Programmierer und Unternehmer, Mitbegründer und CEO von OpenAI. + +Vorwort + +XI + +Das Ziel dieses Lernbuchs, und des damit verbundenen Data Science Training, ist die Unterstützung des Kompetenzaufbaus in einem speziellen Bereich, nämlich dem des überwachten (maschinellen) Lernens (engl. Supervised Learning). Diese Form des Machine Learning ist deshalb so interessant, weil damit Prognosen möglich sind. Prognosen sind wissenschaftlich begründete Aussagen über die Zukunft. Wer die Zukunft kennt, hat einen strategischen Vorteil. Anwendungen, die die Zukunft vorhersagen, gehören in den Bereich der prädiktiven Analyse (Predictive Analytics). Wir kommen nicht darum herum, viele englischen Begriffe zu verwenden. Niemand spricht von Datenwissenschaft, alle sagen Data Science. +Am 21.05.2024 verabschiedete der Rat der Europäischen Union (EU) ein Gesetz zur Vereinheitlichung der Regulierung von künstlicher Intelligenz: AI Act. Damit erfolgt eine Zuordnung von KI-Anwendungen zu Risikokategorien. Je nach Kategorie unterliegen diese KI-Anwendungen dann unterschiedlichen EU-Gesetzen, von Verbot bis keine Regulierung. In diesem Buch adressieren wir bereits ethische Themen wie den verantwortungsvollen Umgang mit Daten und Ergebnissen. Wir gehen auch auf Chancen und Risiken von KI im Verlauf der Rahmenhandlung ein. Während die Theorie- und Praxisteile auf wissenschaftlich fundierten Fakten basieren, lässt die Rahmenhandlung durch Dialoge der Protagonisten auch Meinungen und Fiktionen zu. Somit ist das Lernbuch eigentlich auch eine Data Science Fiction Story. +Materialien Materialien zu diesem Lernbuch sind unter dem folgenden Link zu finden: https://data-science.training/ +Dankeschön Ich möchte die Gelegenheit nutzen, um meinen Dank an all die Menschen auszusprechen, die dazu beigetragen haben, dieses Buch zu verwirklichen. Hierzu gehören u. a. die vielen Studierenden, die sich über Jahre hinweg mit dem Thema Data Science auseinandergesetzt und wertvolles Feedback gegeben haben. Ohne ihre Unterstützung wäre dieses Projekt nicht möglich gewesen. Namentlich möchte ich mich stellvertretend bei Katrina Wiesner, Steffen Köser und Cathy-Ann Dorry bedanken. Aber auch andere Perspektiven wurden berücksichtigt. Ein herzliches Dankeschön geht an Jutta Lechtenfeld und Andreas Wagner für ihre Korrekturen, Anregungen und Hinweise zum Manuskript. Des Weiteren danke ich dem Springer Verlag für die professionelle und vertrauensvolle Zusammenarbeit. Last, but not least gilt ein spezieller Dank der Schreibmaschine ChatGPT für die Unterstützung beim Überarbeiten der Projekttagebücher. +Eine Sache noch Wir verwenden in diesem Buch zugunsten der Lesbarkeit die männliche Form als Schreibweise. Diese Vereinfachung gilt jedoch gleichermaßen für alle Geschlechter. Des Weiteren sprechen wir von wir. Damit ist nicht der Pluralis majestatis gemeint, sondern mit dem wir drücken wir die Verbundenheit zwischen Lesern, Wissenschaftlern, den Protagonisten + +XII + +Vorwort + +der i3-Versicherung und dem Autor aus. Wir begreifen uns alle als Lernende, die miteinander und voneinander lernen und deshalb im gleichen Boot sitzen. Wir sind zu einer gemeinsamen Reise aufgebrochen, um nach Wissen und Wahrheit zu streben und insb., um unsere Data-Science-Kompetenzen zu erweitern. Wir nutzen den Wind, trotzen dem Wetter und manchmal steuern wir dieses Boot auch gegen den Strom. Am Ende wird es hoffentlich keinen Eisberg rammen und uns sicher an unser Ziel bringen. +Viel Spaß beim Lesen und Lernen! + +Saarbrücken Oktober 2024 + +Stefan Selle + +Inhaltsverzeichnis +Teil I Datenanalyseprozess 1 Fach- und Geschäftsverständnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 +1.1 Die Neuen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 +1.2.1 Data-Science-Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.2 Datenschutz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Datensicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.4 Datenethik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3 Auf Leben und Tod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Praktischer Teil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5 Kaltes Wasser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2 Datenverständnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.1 König der Welt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.2 Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.2.1 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2.2 Daten- und Dateiformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.2.3 Skalenniveaus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.2.4 Datenqualität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.2.5 Explorative Datenanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.6 Korrelationsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3 Die passenden Fragen stellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.4 Die ersten Analysen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.5 Es leuchtet blau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3 Standard-Prozessmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.1 Schön knusprig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.2 CRISP-DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.2.1 Business Understanding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.2.2 Data Understanding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.2.3 Data Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 +XIII + +XIV + +Inhaltsverzeichnis + +3.2.4 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.2.5 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 3.2.6 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.3 Frauen und Kinder zuerst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.4 Der erste Prozessdurchlauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.5 Frauen und Mädchen zuerst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 + +Teil II Sprints +4 Modellierung mit k-Nearest Neighbor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.1 Glück und Unglück sind zwei Nachbarn . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.2 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.2.1 k-Nearest Neighbor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.2.2 Partitionierung und Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.2.3 Kreuzvalidierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 4.3 Ein guter Nachbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.4 Lazy Learner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4.5 Einer lernt’s von seinem Nachbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 +5 Datenvorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.1 Die heiße Eins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.2 Feature Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.2.1 Feature Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.2.2 Feature Binning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.2.3 Skalierungen und Transformationen . . . . . . . . . . . . . . . . . . . . . . . 138 5.2.4 Textoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3 Das ist kein Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.4 Datenvarianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.5 Blut ist dicker als Wasser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 +6 Auswertung und Einsatz der Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.1 Spiced Ham . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.2 Gütemaße der binären Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 6.2.1 Genauigkeit und Fehlerrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.2.2 Konfusionsmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.2.3 Sensitivität und Spezifität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.2.4 Präzision und Recall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.2.5 Komplexe Gütemaße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.2.6 Bezeichnungen der Gütemaße . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 6.3 Entwirrung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 6.4 Sophias Welt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.5 Mindestziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 + +Inhaltsverzeichnis + +XV + +Teil III Klassifikation: Methoden +7 Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.1 Das Ziegenproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.2 Rechnen mit Wahrscheinlichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 7.2.1 Wahrscheinlichkeiten und der Satz von Bayes . . . . . . . . . . . . . . 183 7.2.2 Maximum-a-posteriori-Hypothese . . . . . . . . . . . . . . . . . . . . . . . . . 187 7.2.3 Naive-Bayes-Klassifizierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.4 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7.3 Schnelles Denken, langsames Denken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 7.4 Basis-Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 7.5 Naive Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 +8 Entscheidungsbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.1 Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 8.2 Decision Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 8.2.1 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 8.2.2 Konstruktion mit Entropie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 8.2.3 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 8.2.4 Overfitting und Pruning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 8.3 Gratis-Mittagessen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 8.4 Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 8.5 White Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 +9 Neuronale Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.1 Bergnebel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.2 Lernen mit Neuronen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.2.1 Biologisches Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.2.2 Künstliches Neuron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.2.3 Multilayer-Perzeptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 9.2.4 Backpropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.2.5 Gradientenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.2.6 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.3 Faustregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 9.4 Topologiestudien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.5 Shallow Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 +10 Lineare Klassifizierer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 10.1 Nobelpreis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 10.2 Unterstützung und Trennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 10.2.1 Support Vector Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 10.2.2 Logistische Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 10.3 Sabotage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 + +XVI + +Inhaltsverzeichnis + +10.4 Kernel, Penalty und Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 10.5 Lineare Separierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 +11 Ensemble Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 11.1 Wisdom of the Crowd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 11.2 Ensemble-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 11.2.1 Verzerrung-Varianz-Dilemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 11.2.2 Ensembles, Bagging und Random Forest . . . . . . . . . . . . . . . . . . 293 11.2.3 Boosting und Gradient Boosted Trees . . . . . . . . . . . . . . . . . . . . . 297 11.3 Ransomware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 11.4 Feature Importance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 11.5 Sex-Fare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 + +Teil IV Regression +12 Vorbereitung der Regressionsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 12.1 Junior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 12.2 Einführung in die Regressionsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 12.2.1 Interpolation vs. Extrapolation . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 12.2.2 Korrelationsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 12.2.3 Korrelation vs. Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 12.3 Zirkelschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 12.4 FirstnameMeanAge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 12.5 Doppelgänger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 +13 Lineare und polynomiale Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 13.1 Code Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 13.2 Regression und Regularisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 13.2.1 Methode der kleinsten Quadrate . . . . . . . . . . . . . . . . . . . . . . . . . . 336 13.2.2 Lineare Regression und der T-Test . . . . . . . . . . . . . . . . . . . . . . . . 337 13.2.3 Polynomiale Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 13.2.4 Güte- bzw. Fehlermaße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 13.2.5 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 13.2.6 Regularisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 13.3 Einfache Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 13.4 Regressionsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 13.5 Dr. Strangelove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 +14 Bekannte Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 14.1 Gekko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 14.2 Von Bäumen und Netzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 14.2.1 Regression Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 14.2.2 Random Forest und Gradient Boosted Trees . . . . . . . . . . . . . . . 361 + +Inhaltsverzeichnis + +XVII + +14.2.3 Multilayer-Perzeptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 14.3 Suspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 14.4 Regressoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 14.5 Lebenslanges Lernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 + +Teil V Klassifikation vs. Regression +15 Mehrklassen-Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 15.1 Kickern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 15.2 Viele Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 15.2.1 Klassifizierungsstrategien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 15.2.2 Mikro- und Makro-Mittelwertbildungen . . . . . . . . . . . . . . . . . . . 377 15.2.3 LogLoss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 15.2.4 Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 15.3 AgeBinned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 15.4 MKK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 15.5 Champions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 +16 Ungleiche Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 16.1 Marx oder May . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 16.2 Sampling-Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 16.2.1 Undersampling vs. Oversampling . . . . . . . . . . . . . . . . . . . . . . . . . 398 16.2.2 Bootstrapping und SMOTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 16.2.3 Gegenüberstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 16.3 Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 16.4 Child . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 16.5 Best results ever . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 +17 Konsolidierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 17.1 Repetitorium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 17.2 Rekapitulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 17.3 Outcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 17.4 Ergebnisse zusammenführen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 17.5 Neue Erkenntnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 + +Teil VI Fortgeschrittene Techniken +18 Feature Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 18.1 Dreimal schwarzer Kater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 18.2 Auswahlstrategien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 18.2.1 Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 18.2.2 Eingebettete Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 18.2.3 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 + +XVIII + +Inhaltsverzeichnis + +18.3 Maulwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 18.4 Selection Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 18.5 Top Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 +19 Hyperparameteroptimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 19.1 Ambidextrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 19.2 Parameter-Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 19.2.1 Rastersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 19.2.2 Zufallssuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 19.2.3 Sukzessive Halbierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 19.2.4 Bayes’sche Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 19.2.5 Weitere Optimierungsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 19.3 Max-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 19.4 Parametersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 19.5 Die Nadel im Heuhaufen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 +20 Präzision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 20.1 Intervalltraining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 20.2 Vertrauenswahrscheinlichkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 20.2.1 Schwellenwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 20.2.2 Konstruktion der ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 20.3 Kryptonite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 20.4 Threshold Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 20.5 Konfidenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 + +Teil VII Abschluss +21 Freestyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 21.1 Plan A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 21.2 Karls Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 21.3 Verschwörung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 21.4 Annas Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 21.5 Plan B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 +22 Modell 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 22.1 Zurück auf Los . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 22.2 Aufbruch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 22.3 Deepfake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 22.4 Heureka! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 22.5 Serendipity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 + +Inhaltsverzeichnis + +XIX + +23 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 23.1 Gartenparty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 23.2 Fallstudien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 23.2.1 Binäre Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 23.2.2 Mehrklassen-Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 23.2.3 Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 23.3 Zugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 23.4 Datensammlungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 23.5 Anaconda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 +A Softwarewerkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 +Fallstudie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 +Datenversionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 +Mathematische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 +Statistische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 +Gütemaße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 +Sophias Welt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 +Max’ Materialien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 +Karls Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 +Annas Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 +Glossar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 +Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 + +Abkürzungsverzeichnis + +Akronyme + +1D 2D 3D AI API ARIS ASCII BI CRISP-DM CRM CSV DL DM DNA DS DSGVO DST DWH EDA EL ET ETF ETL EVA GPL GPS GPT HPO + +Eindimensional Zweidimensional Dreidimensional Artificial Intelligence Application Programming Interface Architektur integrierter Informationssysteme American Standard Code for Information Interchange Business Intelligence Cross Industry Standard Process for Data Mining Customer Relationship Management Comma Separated Values Data Literacy Data Mining Desoxyribonukleinsäure Data Science Datenschutzgrundverordnung Data Science Training Data Warehouse Explorative Datenanalyse Ensemble Learning Encyclopedia Titanica Exchange Traded Fund Extract – Transform – Load, Extrahieren – Transformieren – Laden Eingabe – Verarbeitung – Ausgabe GNU Public License Global Positioning System Generative Pre-Trained Transformer Hyperparameteroptimierung + +XXI + +XXII +HTML I/O ID IT JSON KDD KI KNIME KVP MKK ML NFC NFL NLP NOIR OOB PC PCA PCR PIP PMML PNG PR PSF PyPI RTL SPSS SQL SVG TanH TV URL UTF ÜWK WWM WWW XML + +Abkürzungsverzeichnis +Hypertext Markup Language Input/Output Identification Informationstechnologie JavaScript Object Notation Knowledge Discovery in Databases Künstliche Intelligenz Konstanz Information Miner Kontinuierlicher Verbesserungsprozess Mehrklassen-Klassifikation Machine Learning Near Field Communication No-Free-Lunch Natural Language Processing Nominal, Ordinal, Interval, Ratio Out-of-Bag Personalcomputer Principal Component Analysis Polymerase Chain Reaction, Polymerase-Kettenreaktion Package Installer for Python Predictive Model Markup Language Portable Network Graphics Public Relations Python Software Foundation Python Package Index Radio Télévision Luxembourg Statistical Package for the Social Sciences (ursprünglich) Structured Query Language Scalable Vector Graphics Tangens hyperbolicus Television, Fernsehen Uniform Resource Locator Unicode Transformation Format Überlebenswahrscheinlichkeit(en) Wer wird Millionär World Wide Web eXtended Markup Language + +Abkürzungsverzeichnis + +XXIII + +Methoden und Algorithmen + +Ada Adam Algo BFE BFGS BP CART CCP CG DT ESS FFS GA GB GBR GBT GPT ID3 IRLS KNN kNN kNR LASSO L-BFGS LR MAP MDL MLP MLR NB NBR RBF ReLU REP RF RFECV RFR Rprop RT + +Adjusts adaptively Adaptive Moment Estimation Algorithmus Backward Feature Elimination Broyden-Fletcher-Goldfarb-Shanno Backpropagation Classification and Regression Trees Cost-Complexity Pruning Conjugate Gradient Decision Tree Equal Size Sampling Forward Feature Selection Genetische Algorithmen Gradient Boosting Gradient Boosting Regressor Gradient Boosted Trees Generative Pre-trained Transformer Iterative Dichotomiser 3 Iterative Reweighted Least Squares Künstliches neuronales Netzwerk k-Nearest Neighbor k-Neighbors Regressor Least Absolute Shrinkage and Selection Operator Limited-memory BFGS Logistic Regression Maximum a posteriori Minimum Description Length Multilayer-Perzeptron MLP Regressor Naive Bayes Naive Bayes Regression Radial Basis Function Rectified Linear Unit Reduced Error Pruning Random Forest Recursive Feature Elimination with Cross Validation Random Forest Regressor Resilient Backpropagation Regression Tree + +XXIV + +SAG SFS SGD SH SMO SMOTE SVC SVM SVR TDIDT + +Stochastic Average Gradient Sequential Feature Selector Stochastic Gradient Descent Successive Halving Sequential Minimal Optimization Synthetic Minority Oversampling Technique Support Vector Classification Support Vector Machine SVM Regressor bzw. Support Vector Regression Top-Down Induction of Decision Trees + +Abkürzungsverzeichnis + +Gütemaße + +AUC AURC FI FN FP FPR MAE MAPE MCC MSE PPV RMSE ROC TN TNR TP TPR + +Area under curve Area under ROC curve Feature Importance False Negatives False Positives False Positive Rate Mean Absolute Error Mean Absolute Percentage Error Matthews Correlation Coefficient Mean Squared Error Positive Prediction Value Root Mean Squared Error Receiver Operating Characteristic True Negatives True Negative Rate True Positives True Positive Rate + +Titanic + +Capt Col CS Dr H&W + +Captain, Kapitän Colonel, Oberst Cable Ship, Kabelschiff Doctor, Doktor Harland & Wolff + +Abkürzungsverzeichnis + +XXV + +Mlle Mme Mr Mrs Ms Rev RMS SS + +Mademoiselle, Fräulein Madame, Frau Mister, Herr Mistress, Frau Miss, Fräulein Reverend, Pfarrer Royal Mail Ship, Königliches Postschiff Steam Ship, Dampfschiff + +Einheiten + +AM h kg MEZ Mio. min. Mrd. PM + +ante meridiem; Mittag Stunde(n) Kilogramm Mitteleuropäische Zeit Million(en) Minute(n) Milliarde(n) post meridiem; nach Mittag + +Länder, Regionen und Organisationen7 + +ACM BKA CEO CERN CIA EU FAIR FBI i3 IBM Inc. ISO NCR + +Association for Computing Machinery Bundeskriminalamt Chief Executive Officer, Geschäftsführer Conseil Européen pour la Recherche Nucléaire Central Intelligence Agency Europäische Union Facebook Artificial Intelligence Research Federal Bureau of Investigation International Insurance Incorporated International Business Machines Incorporated International Organization for Standardization National Cash Register + +7 Zu Orten der USA ist in Klammern häufig die Abkürzung des Bundesstaates als ZweiBuchstaben-Code gemäß ISO-3166-2:US angegeben, bspw. CA für Kalifornien (California). Solche Abkürzungen sind in diesem Verzeichnis nicht explizit aufgeführt. + +XXVI + +Abkürzungsverzeichnis + +OHRA SRI UCLA US USA + +Onderlinge ziektekostenverzekeringsfonds van Hoogere RijksAmbtenaren Stanford Research Institute University of California, Los Angeles United States United States of America + +Wörter und Ausdrücke + +Abb. aka App bspw. bzw. ca. d. h. engl. et al. etc. ggf. i. d. R. insb. k. o. Kap. Max. max. Min. min. mind. o. ä. p. a. Prog. PS s. o. sog. s. u. Tab. u. a. usw. + +Abbildung also known as Application, Applikation, (mobile) Anwendung beispielsweise beziehungsweise circa (Lateinisch: ungefähr) das heißt Englisch et alia (Lateinisch: und andere) et cetera (Lateinisch: und so weiter) gegebenenfalls in der Regel insbesondere Knockout Kapitel Maximum maximal Minimum minimal mindestens oder ähnlich per anno (Lateinisch: pro Jahr) Programm(e) Postskriptum siehe oben sogenannt (e, er, es) siehe unten Tabelle unter anderem und so weiter + +Abkürzungsverzeichnis + +vgl. vergleiche + +vs. + +versus (Lateinisch: gegen) + +z. B. zum Beispiel + +XXVII + +Data is the new oil. Clive Humby1 + +Teil I Datenanalyseprozess + +1 Clive Robert Humby, 03.02.1955 in Leicester, britischer Mathematiker, Data Scientist und Unternehmer. + +Fach- und Geschäftsverständnis + +1 + +Zusammenfassung +Anna und Karl starten ihre Traineephase bei der i3-Versicherung. Ihr Coach Max begleitet sie dabei und stellt ihnen den Titanic-Wettbewerb der Data-Science-Plattform Kaggle vor. Sie sollen vorhersagen, welche Passagiere die Schiffskatastrophe überlebt hätten. Solche oder ähnliche Prognosen sind hilfreich für die Prämienberechnung von Risikolebensversicherungen. Karl benutzt als Werkzeug KNIME Analytics. Anna verwendet das Tool Anaconda (Python, Jupyter Notebook). Damit unternehmen die beiden Trainees ihre ersten Schritte in die Data-Science-Welt. Zuvor bekommen sie neben einer theoretischen Einführung insb. Gelegenheit, um mit Max über die Themen Datenschutz und Datenethik zu diskutieren. Ganz nebenbei lernen Anna und Karl auch viele neue Begriffe kennen: Data Science, Data Literacy, Business Intelligence, Data Warehouse, Data Mining, Knowledge Discovery in Databases, Big Data, Predictive Analytics, Überwachtes Lernen, Klassifikation, Regression, Machine Learning, künstliche Intelligenz, Turing Test. +1.1 Die Neuen +Max: Ihr also seid die Neuen. Prima! Mein Name ist Max. Wir sagen hier Du. Ich bin euer Coach und Mentor bei der i3-Versicherung und unterstütze euch während eurer Traineephase. Wie heißt ihr? Und habt ihr bereits Erfahrungen im Bereich Data Science oder irgendwelche Programmierkenntnisse? +Anna: Hi! Mein Name ist Anna. Ich habe zwei Semester an der Uni in Python programmiert. Mit Data Science hatte ich bisher noch nicht zu tun. + +© Der/die Autor(en), exklusiv lizenziert an Springer-Verlag GmbH, DE, ein Teil von + +3 + +Springer Nature 2024 + +S. Selle, Data Science Training – Supervised Learning, + +https://doi.org/10.1007/978-3-662-67960-9_1 + +4 + +1 Fach- und Geschäftsverständnis + +Karl: Hallo! Ich bin Karl. Ich habe keine Erfahrungen in Data Science. Programmieren kann ich nicht. Das ist doch kein Problem, oder? +Max: Schön euch kennenzulernen! Ihr müsst keine Erfahrungen in Data Science mitbringen. Das Training startet bei null. Programmierkenntnisse sind hilfreich, aber nicht notwendig. Karl, du wirst dann mit dem Tool KNIME Analytics Platform arbeiten. Das ist ein grafisches Werkzeug. Du musst also nicht programmieren. Anna, du kannst Anaconda benutzen. Das ist eine spezielle Python-Distribution, die bereits viele nützliche Data-Science-Funktionalitäten enthält. +Karl: Ja gut. Aber kann ich mit KNIME das Gleiche machen wie mit Anaconda? Max: Na klar. KNIME und Anaconda sind zwar zwei unterschiedliche Werkzeuge, aber +sie unterstützen die gleichen Methoden. Der Ausgangspunkt ist eine konkrete Aufgabe. Wir folgen dann einer etablierten Methode, um diese Aufgabe zu lösen. Dazu wenden wir ein Werkzeug an, das diese Methode unterstützt und bearbeiten damit die Aufgabe. [1] Fertig. Es geht also im Wesentlichen um die Methoden und nicht so sehr um die Werkzeuge. Methoden haben eine lange Halbwertszeit. Werkzeuge sind austauschbar. Anna: Kann ich nicht auch KNIME benutzen? Max: Prinzipiell schon. Weil du aber bereits Python programmieren kannst, solltest du Anaconda benutzen. Anna: Einverstanden! Schönes Büro übrigens. Tolle Aussicht. Echt faszinierend! Max: Danke! Bevor wir nun die Werkzeuge ausprobieren, gibt es erst noch eine theoretische Einführung. Danach stelle ich euch unsere Fallstudie vor. Sie begleitet uns während des gesamten Data Science Trainings. + +1.2 Einführung +This is a day, I’ve been looking forward to for two and a half years. Every once in a while, a revolutionary product comes along that changes everything. +Mit diesen Worten stellte Steve Jobs am 9. Januar 2007 das erste iPhone von Apple auf der Macworld-Konferenz in San Francisco vor [2]. Im Jahr 2022 nutzten bereits 4,7 Mrd. Menschen weltweit ein Smartphone [3]. Dieser Erfolg hat Auswirkungen auf Unternehmen, deren Geschäftsprozesse, Produkte und Dienstleistungen sowie Geschäftsmodelle. Allgemein sprechen wir von der digitalen Transformation, d. h. des zielgerichteten Einsatzes von digitalen Technologien zur Neu- oder Umgestaltung der Wertschöpfungsketten. Die Rohstoffe dieser Digitalisierung sind (digitale) Daten. Im Fokus dieses Lernbuchs steht die Analyse solcher Daten. Allerdings betrachten wir nur eine spezielle Analyseform des maschinellen Lernens: das überwachte Lernen. Die übergeordnete Disziplin heißt Data Science. Sehen wir uns zunächst diese Begriffe und deren Zusammenhänge an. + +1.2 Einführung + +5 + +1.2.1 Data-Science-Begriffe + +Data Science Wörtlich übersetzt bedeutet Data Science (DS) Datenwissenschaft. Es ist eine interdisziplinäre Wissenschaft, die Mathematik und Statistik, Informatik/IT sowie Betriebswirtschaft bzw. Domänen- und Fachwissen umfasst. Data Science greift dabei u. a. auf Methoden des Maschinenlernens und der Softwareentwicklung zurück, mit dem Ziel, neue Erkenntnisse aus Daten zu gewinnen. Auf Grundlage dieses neuen Wissens können Entscheider geschäftsrelevante Handlungsempfehlungen ableiten. Bereits im Jahr 1974 verwendete Peter Naur1 den Begriff Data Science im Vorwort seines Buches Concise Survey of Computer Methods, allerdings als Ersatz für den Begriff Computer Science [4]. Im Rahmen seiner Antrittsvorlesung Statistics = Data Science? schlug Chien-Fu Jeff Wu 1997 vor, Statistik in Data Science umzubenennen [5]. Anfang der 2000er Jahre setzte sich der Begriff dann für eine eigenständige Disziplin durch. + +Data Literacy Data Literacy (DL), also Datenkompetenz, ist die Grundlage von Data Science. Die Lernenden eignen sich grundlegende Fähigkeiten im Umgang mit Daten an: Daten(quellen) suchen, Daten lesen, Daten speichern, Daten übertragen, Daten verarbeiten bzw. analysieren, Daten(qualität) bewerten, Schlussfolgerungen ziehen, Ergebnisse interpretieren, präsentieren und diskutieren usw. + +Business Intelligence & Data Warehouse Business Intelligence (BI) ist ein Wegbereiter für Data Science. Hans Peter Luhn2 verwendete diesen Begriff bereits im Jahr 1958 [6]. Mit Intelligence ist in diesem Kontext das Sammeln und Analysieren von Informationen gemeint. Das ist bspw. auch eine Hauptaufgabe des US-amerikanischen Auslandsgeheimdienstes Central Intelligence Agency (CIA). Die technische Basis eines BI-Systems bildet ein Data Warehouse (DWH), also ein Datenlager. In den 1990er Jahren entwickelten Bill Inmon und Ralph Kimball zwei unterschiedliche Konzepte dieser speziellen Form einer Datenbank [7, 8]. Das DWH speichert die Daten so, dass sie sich gut analysieren lassen. Aus diesem Grund verbreiteten sich BI-Systeme seit dieser Zeit. Der ETL-Prozess integriert die Daten in das Data Warehouse. Dieser Prozess besteht aus den Phasen Extrahieren, Transformieren und Laden. Dabei findet auch die Bereinigung der Daten statt. Das Data Warehouse eines Unternehmens gilt als Single Point of Truth. Auf Basis eines Data Warehouse können wir Daten auf verschiedene Arten aufbereiten und analysieren. Wir erstellen standardisierte Berichte (engl. Reports), bauen Dashboards + +1 Peter Naur, 25.10.1928 in Frederiksberg, † 03.01.2016 in Herlev, dänischer Informatiker und Träger des Turing Awards (2005). 2 Hans Peter Luhn, 01.07.1896 in Barmen, † 19.08.1964 in Armonk (New York), deutscher Informatiker. + +6 + +1 Fach- und Geschäftsverständnis + +bzw. Management-Cockpits, führen interaktive Ad-hoc-Analysen durch und wenden Data Mining (DM) Methoden an. +Data Mining Das englische Wort Mining kommt aus dem Bergbau und bezeichnet das Graben nach und das Abbauen von Bodenschätzen. Übertragen auf Daten bedeutet Mining das Suchen und Finden von Erkenntnissen in den Datenbergen der Unternehmen. Data Mining ist aber nur ein Schritt in einem übergeordneten Prozess namens Knowledge Discovery in Databases (KDD). In diesem speziellen Prozessschritt kommen spezifische Algorithmen zur Extraktion von Mustern aus Daten zum Einsatz [9, 10]. Statistiker erstellen Hypothesen zu UrsacheWirkung-Zusammenhängen (Kausalität) und überprüfen sie mittels geeigneter Daten, um wissenschaftliche Erkenntnisse empirisch abzusichern. Wenn diese Fragestellungen aus dem Bereich der Wirtschaftswissenschaften stammen, dann befasst sich die Ökonometrie damit. Im Gegensatz dazu leiten Datenanalytiker beim Data Mining neue Erkenntnisse aus den in den Daten gefundenen Mustern (Korrelationen) ab. + +Big Data Ein Data Warehouse kann nicht alle Daten speichern und verarbeiten. Im Kontext Big Data produzieren Benutzer Daten in großen Mengen (Volume). Benutzer können Organisationen, Personen oder auch Maschinen sein. Diese Produktion erfolgt sehr schnell (Velocity), teilweise auch in Echtzeit und/oder als Stream. Des Weiteren können diese Daten strukturiert (z. B. tabellarische Daten), semistrukturiert (z. B. im XML- oder JSON-Format) oder unstrukturiert (z. B. als Text- oder E-Mail) vorliegen (Variety). Da bei Big Data Schnelligkeit wichtiger ist als Qualität, können Daten auch fehlen, fehlerhaft oder ungenau sein (Veracity). Letztendlich sind die zu analysierenden Daten wertvoll für die Unternehmen (Value), ggf. ist dieser Wert jedoch zunächst verborgen. +Predictive Analytics Vereinfacht ausgedrückt schauen die klassischen BI-Analysen stärker in die Vergangenheit und die Big-Data-Analysen stärker in die Zukunft. Die deskriptive Analyse ist vergangenheitsorientiert und fragt, was passiert ist. Die diagnostische Analyse sucht nach UrsachenWirkung-Zusammenhängen und fragt somit, warum etwas passiert ist. Die Predictive Analytics ist zukunftsorientiert und fragt, was passieren wird. Und schließlich möchte die Prescriptive Analytics die Zukunft ändern und fragt deshalb, wie wir das realisieren können. +Überwachtes Lernen Das Überwachte Lernen (engl. Supervised Learning) können wir für eine zukunftsorientierte Analyse benutzen, um bspw. Prognosen aus den Daten zu erstellen. Zu jedem Zeitpunkt während des Lernprozesses ist vollständig bekannt, wie die korrekte Lösung aussieht. Wir teilen dem System in jedem Lernschritt die Lösung mit, damit der Lernalgorithmus die Systemparameter entsprechend anpassen kann, um der korrekten Lösung immer näher zu + +1.2 Einführung + +7 + +kommen. Wir teilen dem System die Lösung auf eine Art und Weise mit, indem wir die Daten zuvor speziell kennzeichnen und mit einem Label versehen. Solche Label sind bspw. die Werte Hund und Katze, wenn der Lernalgorithmus vorhersagen soll, welches Tier sich auf einem Bild befindet. Diese Art von Analyse heißt Klassifikation. Wenn wir dagegen vorhersagen möchten, wie schwer das Tier auf dem Bild ist, dann benutzen wir das Gewicht (in kg) als Label. In diesem Fall betrachten wir kontinuierliche Werte und die Analyseart ist eine Regression. +Machine Learning Das überwachte Lernen ist eine Form des Maschinellen Lernens (engl. Machine Learning, ML). Weitere Lernformen sind das unüberwachte Lernen (engl. Unsupervised Learning) und das bestärkende Lernen (engl. Reinforcement Learning). Generell trainieren wir beim maschinellen Lernen Maschinen mittels Algorithmen für bestimmte Aufgaben. Wir programmieren die Maschinen also nicht explizit für genau diese Aufgabe. Es gibt kein festes Regelwerk. Die Maschinen kennen nicht das zugrundeliegende Modell und deren Ursache-Wirkung-Zusammenhänge (Kausalität). Stattdessen benutzen sie die vorhandenen oder selbst generierten Datenbeispiele. Sie suchen nach Zusammenhängen und Mustern, um daraus das gewünschte Verhalten abzuleiten und nachzuahmen (Korrelation). Lernen ist die Grundvoraussetzung dafür, sich der Umwelt anzupassen und ggf. diese Umwelt durch gezielte Aktionen zu verändern. Beim ML lernt nun ein künstliches System, d. h. eine Maschine bzw. ein Computerprogramm, indem es Wissen aus Erfahrungen generiert. Es ist damit ein Teilgebiet der künstlichen Intelligenz (KI). +Künstliche Intelligenz Den Begriff künstliche Intelligenz (KI, engl. Artificial Intelligence, AI) prägte John McCarthy3, als er 1955 zusammen mit Kollegen einen Förderantrag für eine Konferenz am Dartmouth College in New Hampshire stellte, die im darauffolgenden Jahr stattfinden sollte [11]. Er wählte diesen Oberbegriff, um sich damit von der Disziplin Kybernetik zu differenzieren. Es gibt keine allgemein akzeptierte Definition von KI. Wissenschaftler diskutieren den Begriff Intelligenz noch immer kontrovers. Intelligenz ist ein Sammelbegriff für verschiedene kognitive Fähigkeiten: Adaptionsfähigkeit, Erkenntnisvermögen, abstraktes Denken, kritisches Denken, Repräsentation, Urteilsfähigkeit, Problemlösen, Entscheidungsfindung, Kommunikationsfähigkeit, Interaktionsfähigkeit, Kreativität, Emotionalität, Empathie, Phantasie, Teamgeist usw. Mit künstlicher Intelligenz ist meistens gemeint, dass wir versuchen, kognitive Fähigkeiten des Menschen mit Hilfe von Maschinen nachzubilden. Eine schwache KI (engl. Weak AI oder Narrow AI) bietet dabei eine Lösung für ein konkretes Anwendungsproblem. Eine starke KI (engl. Strong AI, Full AI oder Artificial General Intelligence (AGI)) ist vergleichbar mit der menschlichen Intelligenz. AGI verfügt demnach auch über Selbstwahrnehmung (engl. Consciousness), Selbstbewusstsein (engl. + +3 John McCarthy, 04.09.1927 in Boston (MA), † 23.10.2011 in Palo Alto (CA), US-amerikanischer Informatiker und Träger des Turing Awards (1971). + +8 + +1 Fach- und Geschäftsverständnis + +Self-awareness), Empfindungsvermögen (engl. Sentience) und Weisheit (engl. Sapiens), ist aber (noch) Fiktion. +Turing-Test Mit der Frage, ob eine Maschine intelligent ist oder nicht, beschäftigte sich u. a. auch Alan Turing4. In einem Gedankenexperiment führt dabei ein Mensch per Schnittstelle (z. B. über Tastatur und Monitor) ein Gespräch mit einem Gegenüber, ohne diesen zu sehen oder zu hören. Nach einer intensiven Befragung sollte der Fragensteller entscheiden können, ob es sich bei dem Gegenüber um einen Menschen oder eine Maschine handelt. Ist dies nicht zweifelsfrei möglich, dann gilt der Turing-Test als bestanden. Wir würden der Maschine dann menschenähnliches Denkvermögen und damit Intelligenz attestieren. Turing selbst nannte den Test Imitation Game [12]. + +KI-Strömungen Zu den wichtigsten Strömungen bzw. Schulen der KI gehören: + +Symbolisten: Bayesianer: Konnektionisten: Analogisierer: Evolutionisten: + +Logik, Induktion, Expertensysteme, Entscheidungsbäume Wahrscheinlichkeitstheorie, Naive Bayes, Bayes Netze Neurowissenschaften, neuronale Netzwerke, Deep Learning Kognitionswissenschaften, Support Vector Machines Evolutionstheorie, genetische Algorithmen + +Zu diesen Strömungen lernen wir Methoden (in fetter Schrift) im Rahmen dieses Data Science Trainings kennen, allerdings erst ab Kap. 7. Zunächst behandeln wir andere Themen, z. B. den verantwortungsvollen Umgang mit Daten. + +1.2.2 Datenschutz +Datenschutz ist der Schutz von personenbezogenen Daten vor Missbrauch. Personenbezogene Daten charakterisieren natürliche Personen, z. B. anhand des Namens, der Anschrift, des Geburtsdatums, der Telefonnummer, der E-Mail-Adresse usw. Solche personenbezogene Daten identifizieren diese natürlichen Personen. Gemäß des Rechts auf informationelle Selbstbestimmung kann jeder (deutsche) Bürger grundsätzlich selbst über die Preisgabe und Verwendung seiner personenbezogenen Daten bestimmen [13]. Seit dem 25. Mai 2018 regelt die Datenschutz-Grundverordnung (DSGVO) die Verarbeitung personenbezogener Daten im Europäischen Währungsraum [14, 15]. Aus Unternehmensperspektive sind u. a. folgende Aspekte relevant: +4 Alan Mathison Turing, 23.06.1912 in London, † 07.06.1954 in Wilmslow, britischer Mathematiker und Informatiker. Der nach ihm benannte Turing Award gilt als Nobelpreis für Informatik und wird seit 1966 von der Association for Computing Machinery (ACM) verliehen. + +1.2 Einführung + +9 + +Transparenz: +Einwilligung: Zweckbindung: Datenminimierung: +Zeitbezug: +Rechenschaftspflicht: + +Erweiterte Auskunftspflichten wahrnehmen, u. a. durch verständliche Erklärungen Daten speichern und verarbeiten nur mit Zustimmung Daten für einen zuvor festgelegten Zweck erheben Daten verarbeiten: So wenige Daten wie möglich und nur so viele wie unbedingt für den Zweck nötig Daten löschen, wenn kein Grund mehr für die Speicherung und Verarbeitung besteht Einzelne Vorgänge dokumentieren, ggf. Risiken fortlaufend abschätzen (Großunternehmen) + +Aus Data-Science-Sicht sind folgende Methoden der Datenverarbeitung interessant: Anonymisierung, Pseudonymisierung und synthetische Daten. + +Anonymisierung Anonymisierte Daten lassen keinen Rückschluss auf natürliche Personen zu. Somit fällt die Verarbeitung anonymisierter Daten nicht unter den Datenschutz gemäß DSGVO. Allerdings ist es schwer, personenbezogene Daten vollständig zu anonymisieren. Hierzu müssen wir sämtliche Merkmale, die solche Rückschlüsse zulassen würden, löschen oder gezielt verändern. Dabei müssen wir auch an Kombinationen von Merkmalen denken. Wenn wir bspw. die Namen von Personen löschen, kann es immer noch möglich sein, anhand von Merkmalen, wie Geburtsdatum, Geschlecht und Postleitzahl, natürliche Personen eindeutig zu identifizieren [16]. In diesem Fall ist die Anonymisierung nicht vollständig. Wenn wir allerdings auch diese Merkmale löschen, dann sinkt die Datenqualität, sodass eine Datenanalyse vielleicht gar nicht mehr sinnvoll ist. + +Pseudonymisierung Eine andere Möglichkeit bietet die Pseudonymisierung. Dabei ersetzen wir den Namen oder ein anderes Identifikationsmerkmal durch ein Pseudonym. Dieses ist ein eindeutiger Code, ein sog. Primärschlüssel, z. B. eine Buchstaben- und Zahlenkombination. Beispielsweise ist die Matrikelnummer eines Studierenden kein geeignetes Pseudonym. Denn die Matrikelnummer ist vielen Personen an einer Hochschule bekannt, bspw. der Verwaltung, dem Prüfungsamt, ggf. auch einigen Kommilitonen und Dozenten. Stattdessen würden wir einen neuen, künstlichen Schlüssel (engl. Surrogate Key) erzeugen und verwenden. Die Zuordnung zwischen diesem künstlichen Schlüssel und der natürlichen Person ist zwar im IT-System hinterlegt, aber organisatorisch und technisch so geschützt, dass nur wenige berechtigte Personen Zugriff darauf haben. Anhand eines Beispiels aus dem Gesundheitswesen verdeutlichen wir den Einsatzzweck der Pseudonymisierung. Bei der Suche nach geeigneten Therapien zu bislang unheilbaren Krankheiten, möchten wir betroffene Personen schnellstmöglich informieren, sobald die Forscher einen Durchbruch erzielen konnten. Wenn wir anonymisierte Patientendaten verwenden, dann ist das jedoch nicht möglich. Es + +10 + +1 Fach- und Geschäftsverständnis + +gibt nämlich keine Rückschlüsse zu den natürlichen Personen. Liegen die Patientendaten dagegen pseudonymisiert vor, dann ist eine direkte Kontaktaufnahme möglich. +Synthetische Daten Synthetische Daten sind künstliche Daten. Data Scientists können solche Daten verwenden, ohne den Datenschutz zu verletzen. Denn diese Daten beziehen sich nicht auf natürliche Personen. Allerdings müssen Data Scientists solche synthetischen Daten erst einmal produzieren. Die Grundlage hierfür sind bspw. echte Daten zu natürlichen Personen. Diese Daten lassen sich durch Verteilungen beschreiben, z. B. Verteilungen zu demografischen Merkmalen (Alter, Geschlecht, Bildungsstand, Familienstand, Einkommen usw.). Geeignete Algorithmen erzeugen dann künstliche Daten, die im Ergebnis die gleichen Verteilungen wie die Originaldaten aufweisen. Allerdings besitzen die synthetischen Datensätze andere Merkmalskombinationen als die Originaldatensätze. Rückschlüsse auf die ursprünglichen Identitäten sind nicht mehr möglich. + +1.2.3 Datensicherheit +Datensicherheit, manchmal auch technischer Datenschutz genannt, ist ein Teil der ITSicherheit. Diese befasst sich mit dem Erkennen und Abwehren von Angriffen und Bedrohungen, welche die IT-Systeme beeinträchtigen könnten. Es geht darum, Vertraulichkeit, Integrität und Verfügbarkeit sicherzustellen. +Vertraulichkeit Unter Vertraulichkeit verstehen wir, dass nur berechtigte Personen (sensible) Daten verarbeiten dürfen. Dies kann bspw. über einen (digitalen) Zugriffsschutz erfolgen. Per Authentifizierung meldet sich eine berechtigte Person an einem IT-System an, z. B. per Benutzername und Passwort oder auch mittels Zwei-Faktor-Authentifizierung. Nach erfolgreichem Login kennt das IT-System die Identität des Benutzers. Durch ein hinterlegtes RollenBerechtigungskonzept bekommt der Benutzer nun entsprechende Privilegien zugewiesen, um Daten verarbeiten zu dürfen, also z. B. Daten lesen, ändern, löschen, übertragen usw. Dieses Konzept heißt Autorisierung. Einen zusätzlichen Schutz bietet die Verschlüsselung der Daten und Kommunikationsverbindungen. +Integrität Mit Integrität ist gemeint, dass nicht irgendjemand die Daten bzw. IT-Systeme unbemerkt verändert, d. h. manipuliert. Aus diesem Grund protokolliert das IT-System alle Aktivitäten in sog. Logfiles: Wann hat welcher Benutzer (bzw. das IT-System) was genau gemacht? + +1.2 Einführung + +11 + +Verfügbarkeit Verfügbarkeit bedeutet, dass die Daten bzw. IT-Systeme im Idealfall immer zur Verfügung stehen, also 24/7. Damit ist auch gemeint, dass das IT-System jede Benutzeranfrage in einer definierten Zeitspanne beantwortet. IT-Systeme sollen möglichst ausfallsicher sein. Hierfür ist Redundanz notwendig. Zusätzlich empfiehlt es sich, die Daten in regelmäßigen Abständen zu sichern (Backup). Im Falle eines Komplettausfalls lässt sich dann zumindest der letzte gespeicherte Stand wiederherstellen (Restore). + +1.2.4 Datenethik +Datenethik bezieht sich darauf, wie sich die Mitglieder der Informationsgesellschaft in moralischer Hinsicht im Umgang mit Daten und Informationen verhalten bzw. verhalten sollten. Mitglieder können natürliche Personen, Organisationen oder Maschinen sein. Im Fall von Maschinen sprechen wir entsprechend von Maschinenethik. Aktuelle Fragestellungen betreffen Aspekte bzw. Werte wie Freiheit, Gleichheit, Verantwortung, Wahrheit usw. Typische Fragestellungen sind: +• Behandelt ein Algorithmus alle Menschen gleich oder diskriminiert die Maschine ggf. bestimmte Personen(gruppen)? +• Ist es sinnvoll, dass Maschinen autonome Entscheidungen treffen und Menschen damit Verantwortung abgeben? +• Müssen sich intelligente Maschinen moralisch gegenüber den Menschen verhalten und umgekehrt? +Die folgenden drei Beispiele sollen verdeutlichen, worauf Data Scientists im Hinblick auf Datenethik achten müssen. +Amazons Bewerbungsprozess Das US-Unternehmen Amazon entwickelte 2014 einen Algorithmus, um den eigenen Bewerbungsprozess zu automatisieren. Die Wissenschaftler bei Amazon trainierten hierzu ein Modell mit historischen Daten. Dieses schlug dann automatisch diejenigen Kandidaten vor, die aufgrund der eingereichten Bewerbungsunterlagen am besten auf die ausgeschriebene Stelle passten. Allerdings sortierte das Modell systematisch Bewerberinnen aus und diskriminierte damit die Gruppe der Frauen. Diese Verzerrung (engl. Bias) hing mit der Auswahl der Trainingsdaten zusammen. Amazon hatte in der Vergangenheit vergleichsweise viele Männer eingestellt und das Modell imitierte nun dieses Verhalten. Zu den Aufgaben eines Data Scientists gehört es jedoch, solche Verzerrungen zu erkennen und die verwendeten Daten davon zu befreien. Amazon modifizierte den Algorithmus mittlerweile. [17] + +12 + +1 Fach- und Geschäftsverständnis + +Facebooks Chatbots Entwickler von Facebook Artificial Intelligence Research (FAIR) programmierten ein Multiagentensystem, in dem Softwareagenten (bspw. Chatbots) eigenständig Verhandlungen durchführten. Die beiden Agenten Bob und Alice hatten die Aufgabe, Waren zu tauschen: Bücher, Hüte und Bälle. Jeder Agent hatte das Ziel, von einer Ware möglichst viele Einheiten zu bekommen. Bei diesem Experiment passierten zwei unerwartete Dinge. Die Agenten entwickelten eine eigene Sprache, um effizienter zu verhandeln. Dieses Problem hätten die Entwickler lösen können, indem die Agenten Belohnungen dafür bekommen, wenn sie die korrekte Grammatik benutzen. Eine zweites Ergebnis war jedoch beunruhigender. Die Agenten lernten selbstständig eine erfolgreiche, wenn auch fragwürdige, Verhandlungsstrategie. Sie gaben dabei zunächst vor, sich für eine bestimmte Ware zu interessieren. In Wirklichkeit war jedoch eine andere Ware wertvoller für sie. Im Lauf der Verhandlung konnten sie dann einen Kompromiss erzielen und bekamen mehr Einheiten von dieser wertvollen Ware, als wenn sie direkt Interesse bekundet hätten. Wir Menschen nutzen ebenfalls solche Täuschungsmanöver. Ist es also unmoralisch, wenn Maschinen täuschen bzw. lügen? Facebook stellte die Forschung an diesem Experiment inzwischen ein. [18] +Googles Duplex 2018 stellte Google auf seiner Entwicklerkonferenz I/O eine neue Sprach-KI mit Namen Duplex vor. Mit diesem Assistenzsystem können Benutzer Sprachanrufe durchführen lassen, um bspw. einen Friseurtermin zu vereinbaren oder einen Tisch in einem Restaurant zu reservieren. Die Anwendung funktioniert so gut, auch wegen der Verwendung von Füllwörtern, dass die Gegenüber nicht unbedingt erkennen, dass kein Mensch, sondern eine Maschine mit ihnen spricht. Aus ethischer Sicht sollte sich Duplex als Maschine zu erkennen geben. Google reagierte auf diese Kritik und passte seinen Assistenten an. [19] + +1.3 Auf Leben und Tod +Die Fallstudie zu diesem Data Science Training stammt von der Plattform Kaggle, die wiederum eine Tochtergesellschaft von Google bzw. Alphabet ist. Im Mittelpunkt von Kaggle stehen Wettbewerbe (engl. Competitions). Teilweise rufen Unternehmen diese Wettbewerbe aus und manchmal gibt es Preisgelder zu gewinnen. Ein besonderer Wettbewerb ohne Preisgeld und Ende ist am 28.09.2012 gestartet: Titanic – Machine Learning from Disaster [20]. Diese Competition richtet sich speziell an Data-Science-Anfänger. Die Idee des Originalwettbewerbs ist einfach. Wir sollen ein ML-Modell mit den gegebenen Daten trainieren, um vorherzusagen, welche Passagiere diese bekannte Schiffskatastrophe überlebten. Dieser Aufgabentyp ist also eine binäre Klassifikation, denn es gibt genau zwei Klassen: Passagier überlebte vs. Passagier überlebte nicht. Damit gehört der Aufgabentyp zum überwachten Lernen, denn die Lösungen sind bekannt. Die Klassen sind in den Trainingsdaten vorhanden, d. h., die Daten sind mit einem Label versehen. Allerdings erweitern wir diesen Wettbewerb + +1.3 Auf Leben und Tod + +13 + +für dieses Data Science Training. Mit der Berechnung von Überlebenswahrscheinlichkeiten befassen sich nämlich auch Versicherungsgesellschaften, die ihren Kunden Lebensversicherungen verkaufen. +Risikolebensversicherungen Eine Risikolebensversicherung ist ein Vertrag zwischen der versicherten Person (Versicherungsnehmer) und der Versicherungsgesellschaft, die ein solches (individuelles) Produkt anbietet. Im Falle des zufälligen Todes der versicherten Person während der Versicherungsdauer zahlt die Versicherungsgesellschaft die vertraglich vereinbarte Summe als Leistung an die begünstigten Personen (z. B. Hinterbliebenen) aus. Hierfür muss die versicherte Person Beiträge zahlen, z. B. als Einmaleinlage zu Beginn der Versicherungsvertrags oder fortlaufend als Prämien während der Versicherungsdauer. Die Kalkulation dieser Beiträge ist komplex [21]. Das Versicherungsverhältnis ist meistens langfristig. Das individuelle Sterberisiko hängt von Alter, Geschlecht und Gesundheitszustand der versicherten Person ab, aber auch von anderen Faktoren (z. B. Bildungsstand, private und berufliche Risiken). Männer haben eine kürzere Lebenserwartung als Frauen. Aufgrund einer Entscheidung des Europäischen Gerichtshofs vom 1. März 2011 bezüglich Gleichbehandlung (s. Abschn. 1.2.4) müssen Versicherungen ab dem 21. Dezember 2012 Unisex-Tarife anbieten [22]. +Zweck & Ziel Der Zweck dieses Data Science Trainings ist der Kompetenzaufbau des Lesers im Bereich des überwachten maschinellen Lernens. Stellvertretend übernehmen Anna und Karl diese Rolle. Das Ziel der erweiterten Fallstudie ist die Vorhersage, ob ein Passagier die Titanic-Katastrophe überlebt hätte oder nicht. Allerdings soll dies vor dem Hintergrund geschehen, dass der Passagier vor dieser Schiffsreise eine Lebensversicherung abschließen möchte. Aus Sicht der i3-Versicherung ist diese Prognose wichtig, denn in einem der beiden Fälle (Klassen) muss sie die Versicherungsleistung zahlen. Ein Passagier ist also eigentlich ein (potenzieller) Kunde. +Prognosen sind wissenschaftlich begründete Vorhersagen, die sich auf die Zukunft beziehen. Das mit den historischen Titanic-Daten trainierte ML-Modell könnte die i3-Versicherung theoretisch also dazu benutzen, um Kunden zu versichern, die heutzutage Schiffskreuzfahrten unternehmen möchten. Diese Aussage relativieren Anna, Karl und Max jedoch im nächsten Dialog. + +Titanic Die RMS Titanic war 1912 das weltgrößte Passagierschiff (s. Abb. 1.1). Auf ihrer Jungfernfahrt von Großbritannien nach New York kollidierte es am 14.04.1912 gegen 23:40 Uhr mit einem Eisberg und sank innerhalb von 2 h und 40 min (s. Abb. 1.2). Dieses Unglück überleb- + +14 + +1 Fach- und Geschäftsverständnis + +Abb. 1.1 Titanic bei der Abfahrt in Southampton – aufgenommen von F. G. O. Stuart5 [23] +Abb. 1.2 Karte zur Jungfernfahrt der Titanic – auf Basis von [24] ten 712 von geschätzten 2208 Personen (Passagiere und Besatzungsmitglieder) [25]. Also kamen ca. 1500 Personen bei dieser Katastrophe ums Leben. Wie viele Personen tatsächlich 5 Francis Godolphin Osbourne Stuart, 1843 in Braemar, † 1923 in Southampton, schottischer Fotograf. + +1.3 Auf Leben und Tod + +15 + +auf der Titanic waren, lässt sich im Nachhinein nicht exakt feststellen, weil möglicherweise auch sog. blinde Passagiere mit an Bord waren. Das sind nur die Zahlen zu diesem Ereignis. Viele persönliche Schicksale sind mit der Titanic verbunden. In den folgenden Kapiteln lernen wir einige davon kennen. +Fragen und Antworten Einen groben Überblick zu dieser Fallstudie haben wir nun bekommen. Wir sind aber weder Aktuar einer Versicherung noch Experte für Schifffahrt des frühen 20. Jahrhunderts. Das müssen wir auch nicht sein, denn unser Fokus liegt im Bereich des maschinellen Lernens. Andererseits ist Domänenwissen hilfreich zum Verständnis. Bevor wir uns nun dem praktischen Teil zuwenden, widmen wir uns erneut den Themen Datenschutz und Datenethik und wenden diese auf die Fallstudie an. + +Fragen Zur Titanic-Fallstudie können wir uns fragen: +F1.1: Welche Rolle spielt Datenschutz? F1.2: Welche ethischen Aspekte sind wichtig? + +Max: Müssen wir in dieser Fallstudie den Datenschutz beachten? Karl: Wir kennen die Daten doch gar nicht. Max: Aber ihr kennt das Ziel der Datenanalyse, oder? Karl: Wir sollen herausfinden, ob ein Passagier die Titanic-Katastrophe überlebt hätte. +Also haben wir es mit Passagierdaten zu tun. Passagiere sind natürliche Personen. Somit spielt Datenschutz eine Rolle. Anna: Langsam. Das Unglück war 1912. Also vor mehr als 100 Jahren. Mittlerweile sind alle Passagiere gestorben, auch diejenigen, die die Katastrophe überlebt hatten. Es sind historische, öffentliche Daten. Max: Das ist ein guter Einwand. Die DSGVO regelt tatsächlich nur den Schutz personenbezogener Daten von lebenden, natürlichen Personen. Die Mitgliedstaaten des europäischen Währungsraums haben die Möglichkeit, eigene Vorschriften zum Datenschutz verstorbener Personen zu erlassen. Deutschland hat beispielsweise noch keinen Gebrauch davon gemacht. Karl: Dann müssen wir den Datenschutz also nicht beachten? Max: Jein! Wenn wir solche historischen Daten analysieren, dann nicht. Wenn es keine historischen Daten wären, dann könnten wir auch anonymisierte, pseudonymisierte oder synthetische Daten benutzen. Allerdings wollen wir das Prognosemodell auf neue Daten zu noch lebenden Personen anwenden. Wir brauchen zunächst deren + +16 + +1 Fach- und Geschäftsverständnis + +Einverständnis. Das sollte aber kein Problem sein, denn sie möchten ein Versicherungsangebot von uns bekommen. Anna: Können wir ein solches Modell denn auf aktuelle Daten anwenden? Max: Natürlich! Die Frage aber lautet: Ist das sinnvoll? Karl: Vor über 100 Jahren sah die Welt doch noch ganz anders aus. Max: Wir können die Ergebnisse nicht einfach auf die heutige Zeit übertragen. Anna: Nach der Titanic-Katastrophe haben die Reedereien die Sicherheitsmaßnahmen verschärft und ihre Prozesse verbessert, damit sich ein solches Ereignis nicht wiederholt. Karl: Warum behandeln wir diese Fallstudien dann überhaupt? Max: Weil wir durch dieses Schulungsbeispiel viel lernen. Dieses Wissen über Prozesse und Methoden wenden wir dann in Folgeprojekten an. Kommen wir aber noch mal zum Thema Datenschutz Verstorbener zurück. Grundsätzlich sollte sich jedes Unternehmen die Frage stellen, wie es mit den persönlichen Daten verstorbener Kunden verantwortungsvoll umgeht. Bei der International Insurance Incorporated bleiben solche sensiblen Daten zunächst geschützt, auch aus ethischen Gründen. Was aber machen wir mit den Prognosen? Anna: Wir benutzen die Prognosen, um die Versicherungsprämien zu berechnen. Max: Richtig! Aber was machen wir, wenn als Prognose herauskommt, dass ein Passagier nicht überlebt? Anna: Dann wären die Prämien sehr hoch. Karl: Oder wir würden diesen Passagier erst gar nicht versichern. Anna: Müssten wir dann nicht eine treffende Begründung dafür angeben? Karl: Die Begründung wäre: Sie überleben ihre nächste Schiffsreise nicht! Anna: Das können wir auch taktvoller formulieren. Vermutlich würde dann aber dieser Passagier die Reise erst gar nicht antreten. Zumindest nicht, wenn er der Prognose vertraut. Max: Das ist dann eine sogenannte self-destroying prophecy. Die Prognose ändert die Zukunft und zerstört sich damit selbst. Aber eben nur, wenn wir dem Passagier diese Prognose mitteilen. Sollten wir das also tun? Karl: Ja klar! Dann kann der Passagier selbst entscheiden, was er damit macht. Anna: Das ist heikel. Eine Prognose ist nicht immer wahr. Sie kann auch falsch sein. Sie muss nicht unbedingt eintreten. Dann würde dieser Passagier vielleicht auf die Erfahrung seines Lebens verzichten. Max: Da haben wir also ein Dilemma. Es ist auch ein ethisches Problem. Wie sollen wir uns als Lebensversicherung verantwortungsvoll verhalten? Hierzu haben wir eine eigene Ethik-Kommission gegründet, die sich mit dieser und ähnlichen Fragestellungen auseinandersetzt. Anna: Und wie ist das Ergebnis in diesem konkreten Fall? Max: Theoretisch so: Wir behalten die Prognosen für uns. Wir lehnen keine Kunden ab, sondern versichern praktisch jeden. Die Prämienberechnung ist sowieso schon kom- + +1.4 Praktischer Teil + +17 + +plex. Letztendlich machen wir eine Mischkalkulation und legen solche individuellen Risiken dann auf alle Kunden um. Anna: Ist das nicht ein Wettbewerbsnachteil? Max: Touché! Solch ein Modell hätte zur Folge, dass wir nur noch Personen mit einer niedrigen Überlebenschance versichern. Denn unsere Wettbewerber könnten günstigere Tarife anbieten und sich deshalb die Kunden aussuchen. Wir hätten also das Nachsehen. Die Mischkalkulation würde in sich zusammenbrechen. Wir bekämen zu viele Schadensfälle, würden langfristig in Schieflage geraten und vielleicht auch insolvent werden. Außerdem müssen wir Unisex-Tarife berücksichtigen. Wie sieht also ein besseres Modell aus? Ihr könnt gerne selbst weiter darüber nachdenken! + +1.4 Praktischer Teil + +In diesem Abschnitt bereiten wir den praktischen Teil vor. Zunächst stellen wir die beiden Werkzeuge kurz vor, die wir zum Lösen konkreter Probleme benötigen. Das Vorgehen ist in jedem Kapitel ähnlich. Wir stellen es mit acht Schritten dar. + +(1) Zweck: (2) Ziel: (3) Aktivitäten: (4) Programme: (5) Tipps: (6) Umsetzung: (7) Erklärvideos: (8) Lösungsvorschlag: + +Problemstellung, die es zu lösen gilt Zukünftiger Zustand, in dem das Problem gelöst ist Tätigkeiten bzw. Aufgaben, um das Ziel zu erreichen Aus den Tätigkeiten abgeleitete Softwarelösungen Allgemeine Hinweise zur Erstellung der Programme Spezielle Hinweise zu einigen Programmbausteinen Vorstellung der Programmbausteine bzw. Programme Ausführbare und funktionsfähige Programme + +Zunächst beschreiben wir die Problemstellung mit der zugehörigen Begründung, also dem Warum. Das daraus abgeleitete Ziel ist ein Soll-Zustand und wir formulieren es so, als sei es bereits eingetroffen. Zu diesem Ziel bilden wir Teilziele und ordnen diesen Teilzielen dann Aktivitäten zu. Auf die Beschreibung der Teilziele verzichten wir. Aktivitäten formulieren wir aktiv und im Präsens. Sie sind das Was. Wir orientieren uns bei der Formulierung der Ziele und Aktivitäten an dem ARIS-Konzept [26]. ARIS steht für Architektur integrierter Informationssysteme. Es ist zugleich Methodensammlung, Ordnungsrahmen und Vorgehensmodell für IT-gestütztes Geschäftsprozessmanagement. Zu den Aktivitäten erstellen wir mit unseren Werkzeugen Programme. Sie sind das Wie. Hierzu geben wir einige Tipps, also Hinweise zu Programmbausteinen, die Anna und Karl verwenden. Wir können aber auch andere Programmbausteine oder Einstellungen ausprobieren. Es geht also um das Entdecken. Optional stellen wir komplizierte Programmteile kurz vor und gehen auf die Umsetzung ein. Zur Unterstützung helfen Erklärvideos in unterschiedlichen Stufen: von der Vorstellung der Programmbausteine bis hin zu einer Schritt-für-Schritt-Anleitung für die + +18 + +1 Fach- und Geschäftsverständnis + +Erstellung des ausführbaren Programms. Diese fertigen Programme stehen als Lösungsvorschläge ebenfalls auf der DST-Webseite als Download zur Verfügung: https://data-science. training. +KNIME Analytics Platform Michael Berthold und Kollegen der Universität Konstanz entwickeln seit 2004 diese DataScience-Plattform. KNIME Analytics steht als Open-Source-Software (Lizenz: GPL) zur Verfügung. Wir verwenden es zur interaktiven Datenanalyse, ohne dass wir Programmierkenntnisse benötigen. Im Zentrum stehen Workflows, die wir grafisch aus den Programmbausteinen – den Knoten – modellieren. Dabei können wir die Daten aus verschiedenen Quellen über diverse Knoten einlesen, transformieren, analysieren, visualisieren und speichern. KNIME Analytics basiert auf der Plattform Eclipse und ist ebenfalls in Java programmiert. URL: https://www.knime.com. Die Bezeichnung KNIME steht übrigens für Konstanz Information Miner. KN ist auch das Autokennzeichen der Stadt Konstanz. [27] + +Anaconda/Python Der Niederländer Guido van Rossum erfand Anfang der 1990er Jahre die Open-SourceProgrammiersprache Python. Seit 2001 entwickelt die Organisation Python Software Foundation (PSF) sie weiter [28]. Python zeichnet sich durch seine Einfachheit, Übersichtlichkeit und Erweiterbarkeit aus. Die Sprache kommt mit relativ wenigen Schlüsselwörtern (vereinfacht: Vokabeln) aus. Eine Besonderheit ist das Strukturieren von Anweisungsblöcken durch Einrückungen (Tabs). Mit dem Paketmanager PIP können wir Programmbibliotheken als zusätzliche Pakete vom zentralen Repository Python Package Index (PyPI) installieren. Im Bereich Data Science gibt es eine große Auswahl an wissenschaftlichen Bibliotheken. Die Python-Distribution Anaconda enthält viele solcher Pakete und auch das Jupyter Notebook (s. Tab. 1.1). + +Tab. 1.1 Anaconda, Jupyter Notebook und eine Auswahl von Python-Paketen + +Name + +Beschreibung + +URL + +Anaconda Jupyter NB + +Python-Distribution mit vielen DS-Bibliotheken +Browserbasierte Entwicklungsumgebung + +https://www.anaconda.com https://jupyter.org + +NumPy Pandas Matplot +Scikit-learn SciPy + +Lineare Algebra, Vektoren, Matrizen, Arrays Datenstrukturen und Datenanalyse, I/O Mathematische grafische Datenvisualisierungen Maschinelles Lernen, Algorithmen Wissenschaftliches Rechnen, Algorithmen + +https://numpy.org https://pandas.pydata.org https://matplotlib.org +https://scikit-learn.org https://www.scipy.org + +Seaborn + +Statistische High-End-Datenvisualisierungen https://seaborn.pydata.org + +1.4 Praktischer Teil + +Tab. 1.2 Begleitende Materialien + +Werkzeug + +Material + +– + +Nach Kapitel + +KNIME Analytics + +Karls Workflows + +Anaconda/Python + +Annas Jupyter Notebooks + +19 +URL https://data-science.training/ materialien/ https://data-science.training/ knime-workflows/ https://data-science.training/ anaconda/ + +Materialien Auf den Webseiten stellen wir Materialien zu diesem Lernbuch bereit (s. Tab. 1.2). Die Lernvideos von Max zeigen den Umgang mit den Werkzeugen. Anna und Karl bieten ihre Jupyter Notebooks und KNIME Workflows als Lösungsvorschläge zu den Aufgaben zum Download an. Diese Programme enthaltenKommentare mit weiterführenden Erklärungen. Karl benutzt hierfür in KNIME sog. Annotationen. Das sind Boxen, in denen er beliebigen Text hineinschreiben kann. Anna formatiert in Jupyter Notebooks spezielle Bereiche als Markdown. Das ist eine Auszeichnungssprache in Anlehnung an Hypertext Markup Language (HTML). Zusätzlich kommentiert sie ihren Python-Quelltext auch direkt inline mittels #-Zeichen. +Ziel, Zweck & Aktivitäten +Ziel Wir (bzw. Anna und Karl) nutzen das Werkzeug effizient. Zweck Damit lösen wir die eigentlichen Probleme dieses DST. A1.1 Arbeitsumgebung einrichten A1.2 Werkzeug ausprobieren +Aktivität 1.1 Die folgenden fünf Schritte sind notwendig, um zu starten. Auf Einzelheiten gehen wir gleich noch ein. +1. Daten als CSV-Dateien von Kaggle bzw. DST herunterladen – https://www.kaggle.com/competitions/titanic/data – https://data-science.training/1/application.csv +2. Software herunterladen und installieren – KNIME: https://www.knime.com/downloads – Anaconda: https://www.anaconda.com/download +3. Workspace erstellen 4. Datenverzeichnis erstellen 5. Daten in das Datenverzeichnis kopieren + +20 + +1 Fach- und Geschäftsverständnis + +Die Software und die Daten sind frei verfügbar. Damit wir die Dateien herunterladen können, benötigen wir zunächst einen Account bei der Data-Science-Plattform Kaggle und wir müssen den Bedingungen des Titanic-Wettbewerbs zustimmen. Diese besagen u. a., dass wir allen anderen Teilnehmern unsere Codes frei zugänglich machen (s. Tab. 1.2). Die drei heruntergeladenen Kaggle-Dateien sind: +• train.csv, • test.csv, • submission.csv oder gender_submission.csv. +Die erste Datei enthält Trainingsdaten, die zweite Testdaten und die dritte ein Beispiel, welches zeigt, wie wir unser Prognoseergebnis auf Basis der Testdaten formatieren müssen. Diese Datei laden wir dann bei Kaggle hoch und bekommen eine Bewertung zu unseren Ergebnissen. Für die modifizierte Fallstudie benötigen wir noch eine vierte Datei: +• application.csv. +Diese CSV-Datei laden wir unter dem oben genannten Link von der DST-Webseite herunter. Sie enthält Anwendungsdaten zu 23 fiktiven Kunden, die sowohl eine Lebensversicherung abschließen als auch eine Reise mit der Titanic bzw. einem ähnlichen Schiff zu einem späteren Zeitpunkt unternehmen möchten. Zu diesen Kunden möchten wir ebenfalls Prognosen erstellen. Allerdings können wir die Prognosen nicht überprüfen, denn es handelt sich um Personen, die nicht auf der Titanic waren. +Verzeichnisstruktur Der Workspace ist unser Arbeitsbereich. Wir können Namen und Ort dieses Verzeichnisses frei wählen. Innerhalb des Arbeitsbereichs benutzen wir eine feste Struktur. In KNIME Analytics heißen die Verzeichnisse Workgroups. Wir benötigen drei Unterverzeichnisse im Workspace: das erste für die Daten (data), das zweite für die Modelle (models) und das dritte für die Programme (DST1). Jedes Betriebssystem bietet Tools an, um diese Verzeichnisstruktur anzulegen (z. B. den Windows Explorer, den Finder unter Mac oder die Kommandozeile [shell] in Linux/Unix). + +data titanic age new original submission temp +models + +1.4 Praktischer Teil + +21 + +titanic age new original +DST1 01_Fach_und_Geschäftsverständnis 02_Datenverständnis ... + +Die vier heruntergeladenen Dateien legen wir unter data > titanic > original ab. Einige der Unterverzeichnisse benötigen wir erst in späteren Kapiteln. Der Vollständigkeit halber sind sie schon aufgeführt. Unter dem Verzeichnis DST1 bekommt jedes Buchkapitel ein eigenes Unterverzeichnis. Nachdem dieses Gerüst steht, fangen wir an, uns mit den Entwicklungsumgebungen vertraut zu machen und KNIME Workflows bzw. Jupyter Notebooks zu erstellen. Wir benutzen zwar schon die Trainingsdaten, sehen uns diese aber erst in Kap. 2 im Detail an. +Aktivität 1.2 In dieser zweiten Aktivität erstellen wir drei Programme, die bereits wichtige Bausteine (also Programmteile) benutzen. Wir begegnen diesen Bausteinen im Laufe dieses Trainings immer wieder. Es ist an dieser Stelle noch nicht notwendig, jeden Baustein in allen seinen Einzelheiten genau zu verstehen. Es geht vielmehr darum, die Bedienung und den Umgang mit den Werkzeugen zu erlernen. Im Folgenden beschreiben wir, was die drei Programme leisten sollen. +Programme +P1.1 Erste Schritte (011) P1.2 Bausteine zur Datenverarbeitung (012) P1.3 Erste Analysen und Visualisierungen (013) + +Jedes Programm, das wir im Rahmen dieses Data Science Trainings erstellen, bekommt eine eindeutige dreistellige Nummer. Die beiden ersten Ziffern geben die Nummer des Kapitels bzw. der Lerneinheit an. Die dritte Ziffer zählen wir beginnend ab eins hoch. In den runden Klammern nach den Programmnamen sind die drei ersten Nummern angegeben. Das erste Programm lautet bspw. Titanic_011_Erste_Schritte, wobei wir als Präfix den Namen der Fallstudie benutzen. Zukünftig verzichten wir auf diese redundante Angabe, weil wir die Namen der Programme nach dieser Syntax-Regel bilden können. + +22 + +1 Fach- und Geschäftsverständnis + +Programm 1.1 (Workflow 1 bzw. Jupyter Notebook 1) Trainingsdaten lesen, Daten filtern (Zeilen: nur weibliche Passagiere, Spalten: nur Zahlenwerte), Ergebnis (als Excel-Datei) speichern. +Programm 1.2 (Workflow 2 bzw. Jupyter Notebook 2) Trainingsdaten lesen, Daten in zwei Mengen aufteilen (weibliche vs. männliche Passagiere). Für weibliche Passagiere: Daten filtern (Passagiere, die in Cherbourg an Bord gegangen sind oder zwischen 20 und 30 Jahre alt sind), Daten aufsteigend nach dem Alter sortieren. Für männliche Passagiere: Neue Spalte SibSpParch1 durch Berechnung erzeugen (SibSp + Parch + 1), diese neue Spalte in FamilySize umbenennen, diese neue Spalte hinter Parch in die Tabelle einsortieren. +Programm 1.3 (Workflow 3 bzw. Jupyter Notebook 3) Trainingsdaten lesen, statistische Werte zu den Spalten berechnen, Tortendiagramm zur Spalte Survived erzeugen, Verteilung zur Spalte Survived berechnen, Korrelationsanalyse durchführen (d. h. lineare Korrelationskoeffizienten bzw. Korrelationsmatrix berechnen). +Regeln Beim Erstellen dieser Bausteine (Knoten, Funktionen, Variablen) halten wir uns an einige Regeln. +1. Kommentierungen erstellen wir in Deutsch. 2. Ansonsten benutzen wir englische Bezeichnungen für die Bausteine. Für die Fami- +liengröße schreiben wir bspw. family size. 3. Dabei benutzen wir entweder die CamelCase-Schreibweise (FamilySize) oder +die snake_case-Schreibweise (family_size). 4. Wenn wir mit Dateien arbeiten, dann benutzen wir relative Pfade bzw. Mountpoints +innerhalb unseres Arbeitsbereichs. +Tipps Um diese Programme zu erstellen, benötigen wir Wissen über die verwendeten Programmbausteine. In KNIME Analytics sind dies die Knoten (engl. Nodes). In Anaconda/Python sind dies Pakete, deren Module, Klassen, Funktionen und ggf. auch Variablen. Als Tipps nennen wir die Bausteine zu den jeweiligen Programmen. + +KNIME-Tipps (Knoten) + +P1.1 CSV Reader, Row Filter, Column Filter, Excel Writer P1.1 CSV Reader, Row Splitter, Rule-based Row Filter, Sorter, +Math Formula, Column Renamer, Column Resorter + +1.4 Praktischer Teil + +23 + +P1.1 CSV Reader, Statistics, Pie Chart (legacy), Linear Correlation, Value Counter +In KNIME Analytics suchen wir im Node Repository nach den Namen dieser Knoten. Wenn wir dort einen Knoten markieren, dann bekommen wir in der Description View die Beschreibung zu diesem ausgewählten Knoten angezeigt. Ein anderer Weg führt über die Webseite des KNIME Community Hub. Auch dort gibt es eine Suchfunktion, die wir benutzen können, um mehr über die Knoten zu erfahren: https://hub.knime.com/. + +Anaconda-Tipps (Funktionen) + +P1.1 pd.read_csv(), df[], df.filter(), df.to_excel() P1.2 pd.read_csv(), df[], df.query(), +df.sort_values(by=[]), df.rename(columns={}) P1.3 pd.read_csv(), df.describe(), df.isnull().sum(), +df[].value_counts(), .plot(kind=’pie’), df.corr(method=’pearson’) +Legende: pd steht für das Pandas-Paket. df steht für ein konkretes Data Frame, also für eine Tabelle mit Daten. Platzhalter für Ausdrücke, Variablen und Spaltennamen o. ä. sind in spitzen Klammern <> angegeben. Hinweis: display(df) zeigt den Inhalt des Data Frames an. +Auf den Seiten der jeweiligen Python-Pakete finden wir Beschreibungen und Beispiele zum Einsatz dieser Funktionen. Da wir mit Data Frames arbeiten und diese zum Paket Pandas gehören, liefert die zugehörige Webseite nützliche Informationen: https://pandas.pydata. org/docs/reference/frame.html + +Lösungsvorschläge +Erklärvideos und KNIME Workflows bzw. Jupyter Notebooks zu diesem Kapitel sind unter dem folgenden Link zu finden: https://data-science.training/kapitel-1/. +Um den Einstieg zu erleichtern, sehen wir uns nun die drei Programme genauer an. Das ist eine Ausnahme, denn normalerweise erklären wir die Lösungsvorschläge nicht. Neben den kommentierten Programmen stehen hierfür nämlich die Erklärvideos zur Verfügung. Wir starten mit den KNIME Workflows. In diesen grafischen Darstellungen erkennen wir bereits, was mit den Daten passiert und wie diese von der Eingabe zu der Ausgabe fließen und dabei verarbeitet werden. Die Programmierung der Jupyter Notebooks orientiert sich an diesen KNIME Workflows. + +24 + +1 Fach- und Geschäftsverständnis + +Umsetzung mit KNIME +Programm 1 Unser erster Workflow basiert auf dem EVA-Prinzip. + +1. Daten lesen (Eingabe): Orange 2. Daten filtern (Verarbeitung): Gelb 3. Daten schreiben (Ausgabe): Rot + +Knoten haben eine aussagekräftige Farbe. Orange Knoten dienen der Eingabe (engl. Input) und rote Knoten der Ausgabe (engl. Output). Solche Operationen fassen wir als Input/Output oder kurz I/O zusammen. Gelbe Knoten verarbeiten die Daten. Das sind häufig Operationen, die sich auf die Spalten (engl. Columns) oder Zeilen (engl. Rows) beziehen. Abb. 1.3 zeigt den ersten KNIME Workflow und Tab. 1.3 enthält die Konfigurationseinstellungen der zugehörigen Knoten. Knoten können links Eingänge (engl. Input Ports) und rechts Ausgänge (engl. Output Ports) haben. Wenn wir Daten über diese Ein- und Ausgänge transportieren, dann ist der Port ein kleines schwarzes Dreieck. Durch das Verbinden der Knoten entstehen dann schwarze Pfeile, die den Datenfluss in unserem Workflow anzeigen. Unter den Knoten ist eine Ampel dargestellt. Eine rote Ampel bedeutet, dass der Knoten noch nicht konfiguriert ist. Durch das Konfigurieren wechselt die Ampel auf gelb. Nach dem erfolgreichen Ausführen des Knotens springt die Ampel dann auf grün. +Wenn wir Dateien lesen oder speichern, dann benutzen wir sog. Mountpoints. Diese bieten den Vorteil, dass wir relative Pfadangaben verwenden. Diese funktionieren sogar unabhängig vom Betriebssystem relativ zu unserem Workspace. Dadurch lassen sich die erstellten Workflows leicht untereinander austauschen, also exportieren und importieren. Unterhalb der Ampel besteht noch die Möglichkeit, die Knoten aussagekräftig zu beschriften, z. B. durch Angabe der Konfigurationseinstellungen (s. Abb. 1.3: In(clude), Ex(clude)). +Programm 2 Der zweite Workflow enthält einige neue gelbe Knoten (s. Abb. 1.4). Statt eines Row Filters benutzen wir nun den Row Splitter. Die Konfiguration ist zwar identisch, aber wir erzeugen nun zwei Datenmengen: Die erste Tabelle enthält alle weiblichen und die zweite alle männlichen Passagiere. In der oberen Reihe benutzen wir Knoten, die Einfluss + +Trainingsdaten +Abb. 1.3 KNIME Workflow Titanic_011_Erste_Schritte + +1.4 Praktischer Teil + +25 + +Tab. 1.3 Konfiguration zum KNIME Workflow Titanic_011_Erste_Schritte + +Nr Knoten + +Zweck + +Konfiguration + +1 + +CSV Reader + +– + +– + +– + +– + +Trainingsdaten lesen – – + +Read from: Mountpoint LOCAL File: /data/titanic/original/train.csv [x] Has column headers + +2 + +Row Filter + +Zeilen filtern + +Include rows by attribute value + +– + +– + +– + +Column to test: Sex + +– + +– + +– + +use pattern matching: female + +3 + +Column Filter + +– + +– + +Spalten filtern – + +Include: Zahlen (I, D) Exclude: Strings (S) + +4 + +Excel Writer + +– + +– + +– + +– + +Daten speichern – – + +Excel format: XLSX Write to: Mountpoint LOCAL File: /data/titanic/temp/output_1.xlsx + +– + +– + +– + +[x] Write column headers + +Trainingsdaten +Abb. 1.4 KNIME Workflow Titanic_012_Gelbe_Knoten +auf die Zeilen der Tabelle nehmen, also auf die Datensätze. In der zweiten Reihe verwenden wir Knoten, welche die Spalten der Tabelle modifizieren, also die Attribute. In Tab. 1.4 sind die Konfigurationen dieser neuen Knoten dargestellt. Der Ausdruck im Rule-based Row Filter sieht ungewöhnlich aus: $Embarked$ = "C" OR ($Age$ >= 20 AND $Age$ <= 30) => TRUE Der Aufbau dieser Regel ist ähnlich zur Syntax der Programmiersprache Structured Query Language (SQL), die wir in relationalen Datenbanken einsetzen. In SQL lautet dieser Befehl: + +26 + +1 Fach- und Geschäftsverständnis + +Tab. 1.4 Konfiguration KNIME Workflow Titanic_012_Gelbe_Knoten + +Nr Knoten + +Zweck + +Konfiguration + +5 + +Row Splitter + +– + +– + +– + +– + +Daten aufteilen – – + +Include rows by attribute value Column to test: Sex +use pattern matching: female + +6 + +Rule-based + +Zeilen filtern + +Expression: + +– + +Row Filter + +– + +– + +– + +– + +$Embarked$ = ”C” OR +($Age$ >= 20 AND $Age$ <= 30) => TRUE + +7 + +Sorter + +Zeilen sortieren + +Sort by: Age + +– + +– + +– + +Ascending + +8 + +Math Formula + +Mathematischer + +Expression: $SibSp$ + $Parch$ + 1 + +– + +– + +– + +– + +Ausdruck – + +Append column: SibSpParch1 [x] Convert to Int + +9 + +Column Renamer + +Spalte(n) umbenennen SibSpParch1 + +– + +– + +– + +Change: FamilySize [IntValue] + +10 Column Resorter Spalte(n) umsortieren Actions + +SELECT * FROM data WHERE Embarked = ’C’ OR (Age >= 20 AND Age <= 30) +In diesem KNIME-Knoten kennzeichnen wir die Spaltennamen (bzw. Variablennamen) mit dem Dollarzeichen ($). Die Zeichenkombination => und TRUE bedeutet, dass als Ergebnis TRUE (bzw. der Wert 1) herauskommt, wenn der Ausdruck links davor erfüllt ist, also wahr ist. Der linke Ausdruck ist noch einmal in zwei Bedingungen unterteilt, die über ein OR (also ODER) miteinander verknüpft sind. Es muss mind. eine dieser beiden Bedingungen erfüllt sein, damit der Ausdruck insgesamt wahr ist. Es dürfen auch beide Bedingungen erfüllt sein. Nur wenn keine der Bedingungen erfüllt ist, dann liefert diese Regel FALSE (bzw. den Wert 0) zurück. Die erste Bedingung Embarked = "C" ist genau dann wahr, wenn in der Spalte Embarked der Wert C steht. Wir benutzen zum Vergleichen das Gleichheitszeichen als Operator und Anführungszeichen, weil der Wert C ein Text und keine Zahl ist. In Kap. 2 erfahren wir mehr über Datentypen. Die zweite Bedingung in den runden Klammern ist selbst noch einmal unterteilt und mittels AND (also UND) sind beide Ausdrücke miteinander verknüpft. Damit der Ausdruck innerhalb der Klammer wahr ist, müssen folglich beide Ausdrücke wahr sein. Die Werte (bzw. Zahlen) in der Spalte Age müssen also größer gleich 20 sein und gleichzeitig kleiner gleich 30. Das Alter muss also im Bereich von 20 bis 30 Jahren liegen. Insgesamt filtern wir also alle Passagiere, die in Cherbourg an Bord der Titanic gingen oder zu dem Zeitpunkt zwischen 20 und 30 Jahre alt waren. Einen tieferen Sinn hat diese Datenabfrage nicht. Es ist eine Fingerübung, um den Umgang mit logischen Ausdrücken zu lernen. + +1.4 Praktischer Teil + +27 + +Programm 3 Der dritte Workflow benutzt blaue und braune Knoten. Mit blauen Knoten können wir die Daten visualisieren, d. h. Diagramme erstellen. Braune Knoten bieten spezielle Berechnungen und Analysen. In Abb. 1.5 ist der dritte Workflow dargestellt und Tab. 1.5 zeigt die Konfiguration der verwendeten Knoten. Die Ergebnisse zu diesen Knoten bekommen wir, indem wir uns mit dem Kontextmenü (rechte Maustaste) die jeweiligen Views oder Tables anzeigen lassen. Auf eine ausführliche Erklärung dieser Knoten verzichten wir an dieser Stelle. Bereits in Kap. 2 begegnen uns diese Knoten wieder. + +Abb. 1.5 KNIME Workflow Titanic_013_Blaue_und_ braune_Knoten + +Tab. 1.5 Konfiguration KNIME Workflow Titanic_013_Blaue_und_braune_Knoten + +Nr Knoten + +Zweck + +Konfiguration + +11 Statistics + +Statistische Werte + +Default + +12 Pie Chart (legacy) Tortendiagramm + +Pie column: Survived + +13 Linear Correlation Lineare Korrelationen Default + +14 Value Counter – + +Werte zählen – + +Column with values to count: +Survived + +28 Umsetzung mit Anaconda Programm 1 Titanic_011_Erste_Schritte + +1 Fach- und Geschäftsverständnis + +import pandas as pd # Pandas importieren # # Trainingsdaten als Data Frame (df) aus CSV-Datei laden df = pd.read_csv(’../../data/titanic/original/train.csv’) # print(df) # Daten ausgeben (die ersten und letzen 5 Zeilen) print(df.columns) # Attributnamen (Spaltennamen) ausgeben print(df.dtypes) # Datentypen zu den Attributen ausgeben print(df.shape) # Dimensionen (Zeilen, Spalten) anzeigen df.info() # Allgemeine Informationen zum Data Frame ausgeben # # Attributwerte auswählen, hier z.B. nur Frauen & Mädchen df = df[df[’Sex’] == ’female’] # # Attribute auswählen, hier z.B. nur Zahlenwerte columns = [’PassengerId’, ’Survived’, ’Pclass’, ’Age’, \ ’SibSp’, ’Parch’, ’Fare’] df = df.filter(columns) # # Gefilterte Daten anzeigen display(df) # # Daten als Excel-Datei speichern (ohne Index = 1. Spalte) df.to_excel(’../../data/titanic/temp/output_1.xlsx’, \ index=False) + +Erklärungen zum Programmcode Mit Hilfe des Zuweisungsoperators (=) speichern wir Änderungen direkt wieder in der Variable df. Wir überschreiben also den Inhalt von df, z. B. durch df = df[df[’Sex’] == ’female’]. Um nach den weiblichen Passagieren zu filtern, gehen wir schrittweise vor: +Schritt 1: df[’Sex’] Mit diesem Ausdruck extrahieren wir die Spalte Sex. Damit schneiden wir aus der Tabelle (2D) einen Vektor (1D: eine Spalte) heraus. Dieser Vektor hat die Länge 891 und enthält die Werte male und female. + +1.4 Praktischer Teil + +29 + +Schritt 2: df[’Sex’] == ’female’ Mit diesem Ausdruck erzeugen wir einen Vektor der Länge 891, der jetzt die Werte true und false enthält: true falls der Attributwert female ist, ansonsten false. Die zwei aufeinanderfolgenden Gleichheitszeichen sind der Vergleichsoperator: ==. +Schritt 3: df[df[’Sex’] == ’female’] Mit diesem Ausdruck erzeugen wir wieder ein Data Frame. Diese Tabelle enthält nur noch die Datenzeilen (Datensätze) mit den weiblichen Passagieren. +Schritt 4: df = df[df[’Sex’] == ’female’] Schließlich speichern wir die neue Tabelle als Ergebnis in der Variable df. Das Data Frame ist nun jedoch um einige Datensätze reduziert. Ursprünglich waren es 891 Zeilen, jetzt sind es 314 Zeilen. +Wir betrachten vier Alternativen, um nach Zahlenwerte zu filtern. +Alternative 1: Filtern aufgrund des Datentyps (INCLUDE) + +import numpy as np # NumPy importieren df1 = df.select_dtypes(include=[np.number]) + +Alternative 2: Filtern aufgrund des Datentyps (EXCLUDE) + +df2 = df.select_dtypes(exclude=’string’) + +Alternative 3: Filtern von Spalten aufgrund des Spaltennamens (INCLUDE) Hierzu benutzen wir eine Liste mit den Namen der Spalten, die wir behalten möchten. +columns = [’PassengerId’, ’Survived’, ’Pclass’, ’Age’, \ ’SibSp’, ’Parch’, ’Fare’] df3 = df.filter(columns) +Alternative 4: Löschen von Spalten aufgrund des Spaltennamens (EXCLUDE) Hierzu benutzen wir eine Liste mit den Spalten, die wir nicht behalten möchten. +columns = [’Name’, ’Sex’, ’Ticket’, ’Cabin’, ’Embarked’] df4 = df.drop(columns, axis=1) + +30 + +1 Fach- und Geschäftsverständnis + +Programm 2 Titanic_012_Weitere_Funktionen_zur_Datenverarbeitung + +import pandas as pd # Pandas importieren # # Trainingsdaten als Data Frame (df) aus CSV-Datei laden df = pd.read_csv(’../../data/titanic/original/train.csv’) # print(df.columns) # Attributnamen (Spaltennamen) ausgeben # # Attributwerte in zwei Data Frames aufteilen, # hier z.B. Frauen vs. Männer df1 = df[df[’Sex’] == ’female’] df2 = df[df[’Sex’] != ’female’] # entspricht == ’male’ # # Datensätze (Zeilen) mit query()-Funktion filtern df1 = df1.query(’Embarked == "C" or (Age >= 20 and Age <= 30)’) # # Zeilen sortieren, z.B. nach dem Alter aufsteigend df1 = df1.sort_values(by=[’Age’]) # default: ascending # # Tabelle anzeigen (als Test) display(df1) # # Eine neue Spalte durch eine Berechnung erzeugen ... sibspparch1 = df2[’SibSp’] + df2[’Parch’] + 1 # ... und zum Data Frame df2 hinzufügen df2.insert(loc=len(df.columns), column=’SibSpParch1’, \ value=sibspparch1) # # Spaltennamen umbenennen (mit einem {Dictionary}) df2 = df2.rename(columns={’SibSpParch1’: ’FamilySize’}) # # Spalten umsortieren new_columns = [’PassengerId’, ’Survived’, ’Pclass’, ’Name’, \ ’Sex’, ’Age’, ’SibSp’, ’Parch’, ’FamilySize’, ’Ticket’, \ ’Fare’, ’Embarked’] df2 = df2[new_columns] # # Tabelle anzeigen (als Test) display(df2) + +1.4 Praktischer Teil + +31 + +Mit der Funktion query() erstellen wir eine Abfrage und bauen damit einen Filter. Der Ausdruck ’Embarked == "C” or (Age >= 20 and Age <= 30)’ filtert bspw. wieder Passagiere, die in Cherbourg (C) ihre Reise mit der Titanic antraten oder die damals zwischen 20 und 30 Jahre alt waren. +Programm 3 +Titanic_013_Erste_Analysen_und_Visualisierungen + +import pandas as pd # Pandas Paket importieren import numpy as np # NumPy Paket importieren import matplotlib.pyplot as plt # Pyplot Modul importieren # # Trainingsdaten als Data Frame (df) aus CSV-Datei laden df = pd.read_csv(’../../data/titanic/original/train.csv’) # df.describe() # Statistische Informationen df.isnull().sum() # Fehlende Werte # # Histogramm erstellen, z.B. für das Attribut Age plt.hist(df[’Age’], bins=20) # 20 Klassen (Bins) plt.title(’Histogramm’) # Überschrift plt.xlabel(’Alter (Age)’) # X-Achsenbeschriftung plt.ylabel(’Häufigkeit’) # Y-Achsenbeschriftung plt.show() # Grafik ausgeben # # Verteilung der Werte berechnen und ausgeben count_class = df[’Survived’].value_counts() print(count_class) # # Tortendiagramm (Pie Chart) erstellen count_class.plot(kind=’pie’, autopct=’%6.2f %%’) # # Korrelationskoeffizienten berechnen df1 = df.select_dtypes(include=[np.number]) # Nur Zahlenwerte corr_matrix = df1.corr(method=’pearson’) # Korrelationsmatrix display(corr_matrix) # # Heatmap mit Korrelationskoeffizienten erstellen plt.figure(figsize=(8,6)) # Größe der Grafik festlegen plt.matshow(corr_matrix,cmap=’Blues’,fignum=1,aspect=’auto’) plt.xticks(range(len(df1.columns)), df1.columns, rotation=45) plt.yticks(range(len(df1.columns)), df1.columns) plt.colorbar() # Farbskala plt.show() # Grafik ausgeben + +32 + +1 Fach- und Geschäftsverständnis + +Mit diesem dritten Programm geben wir zunächst allgemeine statistische Informationen zu den Trainingsdaten aus. Dann erstellen wir ein Histogramm zum Attribut Age, also zum Alter der Passagiere. Danach bestimmen wir die Anzahl der Passagiere zu der jeweiligen Klasse (Attribut Survived). Diese Klassenverteilung stellen wir als Tortendiagramm dar. Schließlich führen wir eine Korrelationsanalyse durch und geben die Ergebnisse sowohl als Tabelle als auch als Heatmap aus. + +1.5 Kaltes Wasser +Das Tortendiagramm (engl. Pie Chart) in Abb. 1.6 zeigt die Verteilung der beiden Klassen dieser Klassifikationsanalyse auf Grundlage der Trainingsdaten. Nur 38,38 % der Passagiere in den Trainingsdaten überlebten die Titanic-Katastrophe (Wert 1), während 61,62 % starben (Wert 0). Wenn wir die Daten aus Abschn. 1.3 benutzen, dann kommen wir auf eine Überlebenswahrscheinlichkeit von +P(Survived = 1) = 712/2208 = 0,3225 +bzw. 32,25 %. Dieser Wert ist deutlich kleiner. Das liegt daran, dass neben den Passagieren auch Besatzungsmitglieder an Bord waren. Von diesen Crew-Mitgliedern überlebten nur wenige die Katastrophe. Die Titanic-Fallstudie verwendet jedoch nur Daten zu den Passagieren. Max: Wie hat euch die erste Lerneinheit gefallen? Anna: Nice! Ich konnte endlich mal wieder meine Python-Kenntnisse anwenden. Karl: Für mich war das ein Sprung ins kalte Wasser. Max: Das ist normal. Am Anfang benötigt jeder Zeit, um sich zurechtzufinden. Karl: Ich habe mich an den Erklärvideos orientiert. Die sind hilfreich. Alle Knoten habe +ich noch nicht ganz verstanden. Das kommt sicherlich noch. Max: Bestimmt! Das ist wie beim Frosch im Kochtopf. Karl: Häh? +Abb. 1.6 Tortendiagramm zur Verteilung der Klassen zu den Passagieren der Titanic auf Grundlage der gegebenen Trainingsdaten. Der Wert 1 bedeutet, dass der Passagier das Unglück überlebte. Der Wert 0 bedeutet das Gegenteil + +Literatur + +33 + +Max: Wir setzen einen Frosch in den Kochtopf. Das Wasser darin ist noch kalt. Dann regeln wir langsam die Temperatur nach oben. Der Frosch merkt diese Veränderung kaum. Er passt seine Körpertemperatur an die veränderte Umgebung an. Irgendwann ist das Wasser dann aber zu heiß für den Frosch. Schließlich haben wir eine leckere Froschsuppe. +Anna: Der arme Frosch! Das ist Tierquälerei. Außerdem: Wer will so was essen? Max: Du hast Recht. Sorry! Wenn wir heißes Wasser im Kochtopf gehabt hätten, dann +wäre der Frosch sofort wieder herausgesprungen. Karl: Und ich bin also dieser Frosch? Max: Wir möchten natürlich, dass du bleibst. Fachkräftemangel. Veränderungen sollen +für dich so angenehm wie möglich sein. Wir kochen dich aber nicht. Du sollst kein Burn-out bekommen. Versprochen! Anna: Der Vergleich ist nicht schön. Max: Mir ist leider keine bessere Geschichte eingefallen. Charles Handy hat sie 1989 in seinem Buch The Age of Unreason veröffentlicht [29]. Allerdings mit einer anderen Intention. Er wollte damit Menschen wachrütteln, die sich in ihrer Komfortzone eingerichtet und ihrem Schicksal ergeben haben. Anna: Das klingt schon besser. Aber moralisch einwandfrei ist die Geschichte trotzdem nicht. Haben wir nicht eben erst das Thema Ethik behandelt? Max: Allerdings! Es ist aber auch nur eine Geschichte. Ein Mythos. Ein Frosch ist schlau genug, um dem zu heißen Wasser zu entkommen [30, 31]. Karl: Vorausgesetzt der Kochtopf ist offen. Max: Na klar! So viel Freiheiten bekommt ihr bei der i3-Versicherung. + +Literatur +1. Balzert H (2009) Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering. 3. Aufl. Spektrum Akademischer Verlag, Heidelberg https://doi.org/10.1007/978-3-82742247-7 +2. Schroter J (2011) Steve Jobs introduces iPhone in 2007. YouTube. 09.10.2011 https://www. youtube.com/watch?v=MnrJzXM7a6o +3. Tenzer F (2024) Anzahl der Smartphone-Nutzer weltweit von 2016 bis 2022 und Prognose bis 2028 (in Milliarden). Statista. 03.01.2024 https://de.statista.com/statistik/daten/studie/309656/ umfrage/prognose-zur-anzahl-der-smartphone-nutzer-weltweit +4. Naur P (1974) Concise Survey of Computer Methods. Petrocelli Books, New York 5. Jeff Wu CF (1997) Statistics = Data Science? Eröffnungsvortrag für die H. C. Carver Pro- +fessur. Universität Michigan. 09.11.1997 https://www2.isye.gatech.edu/~jeffwu/presentations/ datascience.pdf 6. Luhn HP (1958) A Business Intelligence System, IBM J Res & Dev 2:314–319 https://doi.org/ 10.1147/rd.24.0314 7. Inmon WH (1990) Building the Data Warehouse. John Wiley & Sons, New York 8. Kimball R (1996) The Data Warehouse Toolkit. John Wiley & Sons, New York + +34 + +1 Fach- und Geschäftsverständnis + +9. Frawley WJ, Piatetsky-Shapiro G (1991) Knowledge Discovery in Databases. MIT Press, Menlo Park +10. Fayyad UM et al (1996) Advances in Knowledge Discovery and Data Mining. MIT Press, Menlo Park +11. McCarthy J et al (1955) A Proposal for the Darthmouth Summer Research Project on Artificial Intelligence. 31.08.1955. Online veröffentlicht: 03.04.1996 http://www-formal.stanford. edu/jmc/history/dartmouth/dartmouth.html +12. Turing AM (1950) Computing Machinery and Intelligence. Mind LIX 236:433–460 https://doi. org/10.1093/mind/LIX.236.433 +13. BVerfG (1983) Urteil des Ersten Senats vom 15. Dezember 1983 – 1 BvR 209/83 –, Rn. 1-215 http://www.bverfg.de/e/rs19831215_1bvr020983.html +14. dejure.org (2016) Datenschutz-Grundverordnung. 27.04.2016 https://dejure.org/gesetze/ DSGVO +15. Bundesministerium der Justiz (2023) Datenschutz-Grundverordnung. 01.01.2023 https://www. bmj.de/DE/themen/digitales/digitale_buergerrechte/dsgvo/dsgvo_artikel.html +16. Rocher L et al (2019) Estimating the success of re-identifications in incomplete datasets using generative models. Nat Commun 10, 3069 https://doi.org/10.1038/s41467-019-10933-3 +17. Dastin J (2018) Amazon scraps secret AI recruiting tool that showed bias against women. Reuters. 11.10.2018 https://www.reuters.com/article/us-amazon-com-jobs-automation-insightidUSKCN1MK08G +18. Lewis M et al (2017) Deal or no deal? Training AI bots to negotiate. Meta. 14.07.2017 https:// engineering.fb.com/2017/06/14/ml-applications/deal-or-no-deal-training-ai-bots-to-negotiate +19. Herbig D (2018) Google Duplex: Guten Tag, Sie sprechen mit einer KI. Heise. 11.05.2018 https://www.heise.de/newsticker/meldung/Google-Duplex-Guten-Tag-Sie-sprechen-miteiner-KI-4046987.html +20. Li J, Cukierski W (2012) Titanic – Machine Learning from Disaster. Kaggle. 28.09.2012 https:// kaggle.com/c/titanic +21. Koller M (2010) Stochastische Modelle in der Lebensversicherung. 2. Aufl. Springer Verlag, Berlin https://doi.org/10.1007/978-3-642-11252-2 +22. InfoCuria (2011) Urteil des Gerichtshofs (Große Kammer) 1. März 2011 In der Rechtssache C-236/09 https://curia.europa.eu/juris/document/document.jsf?docid=80019&doclang=DE +23. Stuart FGO (1912) RMS Titanic departing Southampton on April 10, 1912. Wikimedia https:// commons.wikimedia.org/w/index.php?curid=2990792 +24. Joseph G (2007) Titanic Route. Wikimedia. 25.02.2007 https://commons.wikimedia.org/w/ index.php?curid=1716842 +25. Encyclopedia Titanica (2022) Discover the true history of RMS Titanic. Aufgerufen: 15.12.2022 https://www.encyclopedia-titanica.org +26. Scheer AW (1992) Architektur integrierter Informationssysteme. Springer Verlag, Berlin. https:// doi.org/10.1007/978-3-642-97403-8 +27. knime.com (2022) KNIME Open Source Story. Aufgerufen: 11.11.2022 https://www.knime. com/knime-open-source-story +28. python.org (2022) History and License. Aufgerufen: 11.11.2022 https://docs.python.org/3/ license.html +29. Handy C (1989) The Age of Unreason. Harvard Business School Press, Brighton (MA) 30. Lutterschmidt DE et al (2002) Behavioral Thermoregulation and the Role of Melatonin in a +Nocturnal Snake. Hormones & Behavior 41:41–50 https://doi.org/10.1006/hbeh.2001.1721 31. Gibbons W (2007) The Legend of the Boiling Frog is Just a Legend. Ecoviews. Savan- +nah River Ecology Laboratory, University of Georgia. 23.12.2007 https://web.archive.org/web/ 20170801123347/https://archive-srel.uga.edu/outreach/ecoviews/ecoview071223.htm + +Datenverständnis + +2 + +Zusammenfassung +Gute Daten sind die Grundlage für gute Analysen. Das weiß auch Max. Auf Basis von elf Qualitätskriterien entwickelt er eine Checkliste mit 15 Fragen. Diese bekommen Anna und Karl zur Verfügung gestellt, um damit die gegebenen Daten gründlich zu prüfen. Sophia unterstützt die beiden Trainees bei ihrer Detektivarbeit. Sie ist ein großer TitanicFan und weiß fast alles über die Katastrophe. Was Anna und Karl entdecken, ist besorgniserregend. Sind die Titanic-Daten tatsächlich so schlecht? Hatten die Kaggle-Mitarbeiter keine Lust oder Zeit, bessere Daten zusammenzustellen? Oder war das Absicht, damit der Wettbewerb eine besondere Herausforderung für angehende Data Scientists darstellt? Anna und Karl eignen sich insb. Wissen über Daten, Datentypen, Datenformate, Skalenniveaus und Datenqualität an. Sie können eine Explorative Datenanalyse (EDA) durchführen und die Ergebnisse einer Korrelationsanalyse interpretieren. Schließlich lernen sie auch ein paar neue Tipps und Tricks im Umgang mit den Werkzeugen KNIME Analytics bzw. Anaconda/Python kennen. + +2.1 König der Welt + +Karl: Anna: +Karl: Anna: + +So, ich habe gestern den Film gesehen. Jetzt bin ich bestens vorbereitet. Es gibt viele Filme. Wahrscheinlich meinst du den Titanic-Film mit Kate Winslet und Leonardo DiCaprio. Und wie hat er dir gefallen? War ziemlich lang. Viel Herzschmerz. Der Untergang war krass inszeniert. Ich fand den Film faszinierend. Die Aufnahmen von der Titanic waren phänomenal. Es wirkte alles so realistisch. So detailliert. Und obwohl wir den Ausgang der Geschichte kennen, war es trotzdem spannend. + +© Der/die Autor(en), exklusiv lizenziert an Springer-Verlag GmbH, DE, ein Teil von + +35 + +Springer Nature 2024 + +S. Selle, Data Science Training – Supervised Learning, + +https://doi.org/10.1007/978-3-662-67960-9_2 + +36 + +2 Datenverständnis + +Karl: Anna: Max: Anna: Max: Karl: Max: Anna: Max: Karl: Max: +Karl: +Max: +Karl: Max: +Anna: Max: +Karl: Max: +Anna: Karl: + +Ja gut. Eine typische Story eben. Ein reiches Mädchen verliebt sich in einen armen Jungen. Nur schade, dass Jack nicht überlebt hat. Ein echt cooler Typ. Schön. Ihr seid schon da. Wer ist cool? Wir haben gerade über die Titanic gesprochen. Dann sind wir ja direkt beim Thema. Diesmal dreht sich nämlich alles um die Daten zur Titanic-Fallstudie. Das klingt aber nicht sehr spannend. Es ist aber wichtig. Gute Daten sind die Grundlage von guten Analysen. Und was genau sind gute Daten? Das sehen wir gleich. Zunächst ist es wichtig, die Daten zu verstehen. Wir müssen auch wissen, welche Datentypen und Skalenniveaus vorliegen. Skalen…Was? Skalenniveaus. Wir betrachten drei Skalenniveaus. Niveau 1: Die Daten lassen sich unterscheiden – also wie weiblich, männlich, divers. Niveau 2: Die Daten haben eine Rangfolge – also wie die Noten sehr gut, gut und so weiter. Niveau 3: Wir können Abstände zwischen den Daten berechnen und diese interpretieren – also wie bei Umsatzzahlen. Aber zwischen Schulnoten kann ich doch auch Abstände berechnen. Der Abstand zwischen den Noten 1 und 2 beträgt 1. Der Abstand zwischen den Noten 3 und 4 beträgt ebenfalls 1. Wenn du die Schulnoten so codierst, dann schon. Aber was genau bedeuten diese Abstände? Ist der Abstand zwischen sehr gut und gut tatsächlich identisch zum Abstand zwischen befriedigend und ausreichend? Keine Ahnung. Schulnoten sind kein gutes Thema. Wofür brauche ich Skalenniveaus überhaupt? Weil Daten oft nicht im gewünschten Format oder in der benötigten Qualität vorliegen. Wir können sie aber bereinigen oder so transformieren, dass sich die Qualität verbessert. Je nach Skalenniveau gibt es andere Möglichkeiten hierfür. Und das Ziel ist dann, eine Datenqualität von 100 % zu erreichen? Nein. Es gibt keine solche Größe Datenqualität, die wir in Prozent messen. Zur Datenqualität gehören viele Kriterien. Diese sehen wir uns noch genauer an. Aber auch dann ist es nicht sinnvoll, eine perfekte Datenqualität erreichen zu wollen. Warum nicht? Weil das meistens mit hohen Kosten verbunden ist, die dann in keinem Verhältnis zum Nutzen stehen. Das Ziel ist deshalb, eine angemessene Datenqualität zu erreichen. Habt ihr schon mal vom Pareto-Prinzip gehört? Geht das Pareto-Prinzip nicht auf die Einkommensverteilung zurück, die nach dem italienischen Wissenschaftler Pareto benannt ist? Ist das nicht die 80-20-Regel? + +2.1 König der Welt + +37 + +Max: Richtig! Vilfredo Pareto1 hat Ende des 19. Jahrhunderts die Verteilung des Grundbesitzes in Italien untersucht und dabei herausgefunden, dass circa 20 % der Bevölkerung 80 % des Bodens besitzen [1]. Das Pareto-Prinzip ist davon abgeleitet. Mit 20 % Aufwand erzielen wir bereits 80 % Leistung. +Karl: Deshalb kam mir die Regel so vertraut vor. Max: Jedenfalls bedeutet das Pareto-Prinzip auch, dass wir für die restlichen 20 % Leis- +tung einen Aufwand von 80 % benötigen. Wir sehen uns die Grundlagen zu Daten und deren Qualität nun genauer an. Danach wenden wir das Gelernte wieder auf unsere Fallstudie an. Vorher möchte ich euch aber noch Sophia vorstellen. Karl: Gut. Wo ist sie denn? Max: Sie ist in dieser Box. Aber ihr könnt sie auch als App auf euren Smartphones installieren. Sophia ist unser Chatbot. Eine künstliche Intelligenz. Wir können ganz normal mit ihr reden. Hallo Sophia! Sophia: Hallo Max! Max: Sophia ist der weltweit größte Titanic-Fan, den ich kenne. Sie weiß praktisch alles über diese Geschichte. Sophia: Jetzt übertreibst du aber. Mir gefällt die Story einfach. Wenn die Titanic nicht bei ihrer Jungfernfahrt gesunken wäre, dann würde das Schiff heute niemand mehr kennen. Für viele Menschen war es eine Tragödie. Für die Titanic war es Schicksal. Schon ihr Name versprach Großes. Sie war für die damalige Zeit eine technische Meisterleistung. Das Handelsjournal The Shipbuilder bezeichnete die Titanic als practically unsinkable. Denn es gab Schotten, also wasserdichte Abteilungen, die Kapitän E. J. Smith2 zentral von der Brücke aus über elektrisch betriebene Wasserschutztüren aus Stahl verschließen konnte. Doch wie wir alle wissen: Das nützte leider nichts. Menschen und ihre Hybris – ein interessantes Thema. [2] Max: Ihr seht schon. Sophia versorgt euch mit Hintergrundinformationen. Sophia: Hm. Zum Einstieg könnt ihr euch den Film von James Cameron aus dem Jahr 1997 anschauen. Dieser ist auch eine Geschichte über Stabilität. Durch die Kollision mit dem Eisberg war die Stabilität der Titanic dahin. Genau diese Idee übertragen wir auf die Gesellschaft des frühen 20. Jahrhunderts. Die Passagiere der 3. Klasse waren von denen der 1. Klasse strikt getrennt. Aber Rose und Jack überwanden diese Barriere. Das traditionelle Klassensystem geriet ins Wanken. Wenn ihr lieber lest, dann empfehle ich das Buch von Linda Maria Koldau. + +1 Vilfredo Federico Damaso Pareto, 15.07.1848 als Wilfried Fritz Pareto in Paris, † 19.08.1923 in Céligny, italienischer Ingenieur, Ökonom und Soziologe. 2 Edward John Smith, 27.01.1850 in Hanley, † 15.04.1912 im Nordatlantik, Kapitän der Titanic. + +38 + +2 Datenverständnis + +2.2 Daten + +Wissenstreppe Die Wissenstreppe nach North (vgl. Abb. 2.1) beschreibt den abstrakten Weg, wie Organisationen bzw. Unternehmen Wissen aufbauen und wettbewerbsfähig werden [3]. Sie besteht aus sieben Stufen, wobei die letzte Stufe für Unternehmen ein wichtiges Ziel darstellt, welches die Voraussetzung für deren wirtschaftlichen Erfolg ist. Damit Unternehmen diese Wettbewerbsfähigkeit erreichen, müssen sie Stufe für Stufe nehmen. Sie können nicht einfach Stufen überspringen. Daten (Stufe 2) sind sehr elementar für den Aufbau von Wissen (Stufe 4) in Unternehmen. Die Prozesse der Unternehmen benötigen Daten als Input. Als Ergebnis produzieren die Prozesse wiederum Daten. Daten sind omnipräsent. Es gibt inzwischen Datenprodukte und datenbasierte Services. Formal bilden wir Daten aus Zeichen. Diese Bildung geschieht nach festen Regeln, der Syntax. + +Zeichen und Zeichensätze Zeichen können bspw. arabische Ziffern (0 bis 9), lateinische Buchstaben (A–Z, a–z) oder Sonderzeichen (Satzzeichen, Umlaute, Steuerzeichen, Symbole, Emojis usw.) sein. Zeichen sind in Zeichensätzen zusammengefasst. ASCII (American Standard Code for Information Interchange) ist ein 7-Bit-Zeichensatz, der 128 (27) verschiedene Zeichen darstellen kann. Dieser US-amerikanische Zeichensatz enthält nur die wichtigsten Zeichen, aber bspw. keine deutschen Umlaute oder Zeichen aus anderen Sprachräumen. Unicode ist ein Standardzeichensatz, der aktuell mehr als 160 Schriftsysteme und ca. 150.000 Zeichen enthält. Er ist im Unicode Transformation Format (UTF) codiert, wobei es verschiedene Codierungen gibt. UTF-8 ist ein spezielles Unicode-Format, in dem die ersten 7 Bits dem ASCII-Zeichensatz entsprechen, alle weiteren Zeichen belegen dann weitere Bits. UTF-8 hat keine feste Länge, sondern die Codierung passt sich den Bedürfnissen an. Wenn wir bspw. keine Sonderzeichen benötigen, dann ist die Codierung sehr sparsam (z. B. 8 Bits = 1 Byte). Die meisten Webseiten sind in UTF-8 codiert. Brauchen wir die deutschen Umlaute, so benötigen wir 16 Bits + +richtiges Handeln + +Abb. 2.1 Wissenstreppe – in Anlehnung an [3] + +2.2 Daten + +39 + +(2 Bytes) zum Codieren. Für fernöstliche und afrikanische Sprachen sind es dann bereits 32 Bits (4 Bytes). Der Vorteil von UTF-8 ist die Flexibilität, alle möglichen Schriftsysteme abzubilden. Der Nachteil ist der erhöhte Rechenaufwand und Speicherbedarf, wenn es sich um sehr spezielle Schriften handelt. + +2.2.1 Datentypen +Durch das Aneinanderfügen der Zeichen dieser Schriften bilden wir Daten bestimmter Typen. In Abb. 2.2 sind elementare und spezielle Datentypen dargestellt. Schlüsselwörter haben eine besondere Bedeutung in Programmiersprachen. Die Angaben in den eckigen Klammern sind die Bezeichnungen in KNIME Analytics. Dieses Werkzeug ist in Java programmiert. Java ist eine typsichere Programmiersprache. Zu jeder Variable, also einem definierten Speicherbereich mit eindeutigem Namen und variablem Inhalt, müssen wir den zugehörigen Datentyp explizit angeben. Python ist keine solche typsichere Programmiersprache. Die Angabe des Datentyps einer Variable ist also nicht notwendig, aber seit Version 3.6 möglich. Zahlen bzw. numerische Werte bestehen aus den arabischen Ziffern, ggf. dem Dezimaltrennzeichen und ggf. einem Tausendertrennzeichen. Das Dezimaltrennzeichen ist meistens ein Komma (z. B. in Deutschland) oder ein Punkt (z. B. in den USA). Das Tausendertrennzeichen ist meistens ein Punkt (z. B. in Deutschland) oder ein Komma (z. B. in den USA). An diesem einfachen Beispiel sehen wir bereits, dass sich mögliche Probleme + +Abb. 2.2 Elementare und spezielle Datentypen mit zugehörigen Schlüsselwörtern und Beispielen + +40 + +2 Datenverständnis + +ergeben, wenn wir US-amerikanische Zahlenformate auf Rechnern verarbeiten möchten, deren Software für das deutsche Zahlenformat konfiguriert ist. +Zahlen Wir unterscheiden zwischen ganzen Zahlen und Gleitkommazahlen bzw. Fließkommazahlen (engl. Floating Point Numbers). Der Computer kann ganze Zahlen exakt darstellen. Ihr Wertebereich ist aber endlich und hängt davon ab, wie viele Bits bzw. Bytes der Rechner zum Speichern verwendet. Ganze Zahlen bezeichnen wir als Integer. In der Programmiersprache Java unterscheiden wir bspw. die Datentypen byte (8 Bits = 1 Byte), short (16 Bits = 2 Bytes), int (32 Bits = 4 Bytes) und long (64 Bits = 8 Bytes). Zahlen sind positiv (+) oder negativ (−). Negative Werte bekommen ein Minuszeichen als Vorzeichen. Wir unterscheiden zwischen unsigned und signed. Mit einem Byte lassen sich die Zahlen von 0 bis 255 (unsigned) bzw. von −128 bis +127 (signed) speichern. Vier Bytes ermöglichen das Abbilden des Wertebereichs von −2.147.483.648 bis 2.147.483.647, also von ganzen Zahlen bis in die Größenordnung von 2 Mrd. + +Kommazahlen Der Computer stellt Gleitkommazahlen intern mit Hilfe von Mantisse und Exponent dar. In dem Beispiel 1,2345 · 106 ist die Zahl 1,2345 die Mantisse und 6 der Exponent zur Basis 10. Das Dezimaltrennzeichen (Komma) fließt dabei um die tatsächliche (reelle) Zahl. Diese wird nur angenähert. Im Unterschied zu den ganzen Zahlen kann der Rechner Gleitkommazahlen nicht beliebig exakt darstellen. Je größer der Speicherplatz, desto besser die Genauigkeit. In der Programmiersprache Java unterscheiden wir bspw. die Datentypen float (32 Bits = 4 Bytes) und double (64 Bits = 8 Bytes). Letzteres steht für die doppelte Genauigkeit (engl. Double Precision). +Wahrheitswerte und Datum Ein spezieller Datentyp beschreibt Wahrheitswerte, die sog. Booleschen Werte3 (engl. Boolean). Diese sind binär, d. h., sie nehmen nur zwei Werte bzw. Zustände an: wahr (true) oder falsch (false). Wir können sie aber auch als Zahlen codieren: 1 oder 0. Ein anderer spezieller Datentyp dient dem Speichern und Verarbeiten von Datum- und Zeitwerten. Wie schon bei den Zahlenformaten sehen diese je nach Land ggf. unterschiedlich aus. Den Datum-Zeitwert 22.02.2022 22:02:20 (22. Februar 2022 um 22 Uhr 2 min und 20 s) bilden wir im US-amerikanischen Format folgendermaßen ab: 02/22/2022 10:02:20 PM. Datumund Zeitwerte lassen sich intern im Rechner als Zahlen darstellen. Ggf. müssen wir auch Zeitzonen (z. B. MEZ) und Zeitumstellungen (Sommer- bzw. Winterzeit) beachten. + +3 George Boole, 02.11.1815 in Lincoln, † 08.12.1864 in Ballintemple, englischer Mathematiker und Philosoph. + +2.2 Daten + +41 + +Texte Alphanumerische Daten bestehen aus (numerischen) Zahlen und Buchstaben des Alphabets. Sie können aber auch bestimmte Sonderzeichen enthalten. Alphanumerische Daten gehören zu den Texten. Diese bestehen aus beliebigen Zeichen (engl. Character). Wir sprechen auch von Zeichenketten, d. h. von einer Aneinanderreihung dieser Zeichen. Die Programmiersprache Java bezeichnet sie als String. Die Text-Werte bekommen Anführungszeichen als Erkennungsmerkmal, z. B. „Hallo Anna!“. Texte haben keine feste Länge wie elementare Datentypen. Sie benötigen deshalb ein spezielles unsichtbares Steuerungszeichen, das ihr Ende markiert. +Begriffe und Synonyme Metadaten beschreiben Daten. Sie sind somit Daten über Daten. In einer Tabelle enthält die erste Zeile normalerweise die Spaltenüberschriften, also die Attributnamen. In den nachfolgenden Zeilen stehen dann die Datenobjekte als Datensätze. Die Attributwerte in den einzelnen Feldern beschreiben diese Datenobjekte. Wir benutzen auch Synonyme für diese Begriffe. Abb. 2.3 zeigt wichtige Begriffe in deutscher und englischer Sprache, die aus verschiedenen Domänen stammen: Datenmanagement, Tabellenkalkulation, (objektorientierte) Programmierung, Statistik & Marktforschung sowie Machine Learning. Die vorgenommenen Abgrenzungen sind nicht trennscharf und erheben keinen Anspruch auf Vollständigkeit. Beispielsweise benutzen Statistiker ebenfalls Variablen und Marktforscher sprechen auch von sog. items statt von Merkmalen. Abb. 2.3 verdeutlicht ein typisches Problem in Data-Science-Projekten: Das Finden einer gemeinsamen Sprache aller Beteiligter. In diesem Lernbuch benutzen wir Begriffe synonym, wobei wir die im Folgenden fett dargestellten bevorzugen. + +Abb. 2.3 Begriffe aus unterschiedlichen Domänen (in Grau hinterlegt). Jede Spalte steht für eine Domäne (z. B. Tabellenkalkulation). In jeder Zeile sind Synonyme genannt: 1. abstrakte Begriffe (z. B. Tabelle), 2. zum Datenobjekt (z. B. Zeile) und 3. zur Objekteigenschaft (z. B. Spalte). In Klammern stehen die englischen Bezeichnungen + +42 + +2 Datenverständnis + +Wichtige Synonyme Spalte: Attribut, Merkmal, Variable, Feature Zeile: Datenobjekt, Datensatz, Beispiel, Entität, Instanz +Den Wertebereich, den die Daten einzelner Attribute annehmen, nennen wir ebenfalls Domäne. Der Begriff Domäne ist damit ein Homonym, mit unterschiedlichen Bedeutungen je nach Kontext. + +2.2.2 Daten- und Dateiformate +Strukturierte Daten Tabellarische Daten sind strukturierte Daten. Der Aufbau einer Tabelle in Spalten und Zeilen gibt den Rahmen, also die Struktur, vor. Eine Spalte mit dem Attributnamen E-Mail gehört bspw. zum Datentyp String und in den Zeilen zu dieser Spalte stehen Texte, die E-Mail-Adressen repräsentieren. Relationale Datenbanken arbeiten auf Basis von Tabellen. Eine Kalkulationssoftware wie bspw. Excel verwendet ebenfalls Tabellen. Die feste Struktur erleichtert die Verarbeitung dieser tabellarischen Daten. Typische Dateiformate sind XLS bzw. XLSX oder Comma Separated Values (CSV). +Unstrukturierte Daten Unstrukturierte Daten haben im Gegensatz zu den strukturierten Daten keine feste Struktur. Hierzu gehören Dokumente, die sich mit Textverarbeitungsprogrammen (z. B. Word: DOC, DOCX) erstellen lassen. Aber auch E-Mails, Chatverläufe, Nachrichten, Posts usw. sind unstrukturiert. Solche Daten lassen sich schwer im Sinne einer Datenanalyse verarbeiten und auswerten. Die Disziplin Natural Language Processing (NLP) befasst sich mit der Verarbeitung genau solcher natürlichsprachiger unstrukturierter Daten. +Semistrukturierte Daten Semistrukturierte Daten liegen zwischen diesen beiden Extremen. Diese Daten sind nicht in dem festen Rahmen einer Tabelle gespeichert, lassen sich jedoch leichter verarbeiten und analysieren als unstrukturierte Daten. Die Formate eXtensible Markup Language (XML) oder JavaScript Object Notation (JSON) sind typische Beispiele. XML benutzt Tags, um die Daten zu strukturieren. JSON arbeitet mit geschweiften Klammern, Doppelpunkt und Komma. +Beispiel XML + Anna anna@data-science.training + +2.2 Daten + +43 + +23 +Beispiel JSON +{ "user": { "name": "Anna", "email": "anna@data-science.training", "alter": 23 } +} + +Praktischer Tipp +Das Alter zu einer Person zu speichern, ist keine gute Idee. Denn das Alter ändert sich genau einmal im Jahr. Wenn wir diesen Geburtstag vergessen und keine Änderung in den Daten vornehmen, dann haben wir einen falschen Wert gespeichert. Neben der Mehrarbeit besteht also auch die Gefahr, dass sich die Datenqualität verschlechtert. Stattdessen speichern wir besser das Geburtsdatum. Denn aus dem Geburtsdatum und dem heutigen oder einem beliebigen Datum können wir das Alter der Person exakt bestimmen. Das Geburtsdatum ändert sich nicht. Es gehört zu den Stammdaten (engl. Master Data). Das sind Daten, die sich nie oder nur sehr selten ändern. Im Beispiel gehören auch der Name und die E-Mail-Adresse von Anna dazu. Wir benötigen Stammdaten, um Geschäftsvorfälle durchzuführen. Dadurch entstehen Bewegungsdaten (engl. Transaction Data). Das sind bspw. die von Anna gemachten Suchanfragen, geschriebenen Nachrichten oder getätigten Einkäufe. +Spezielle Daten- bzw. Dateiformate liegen vor, wenn wir Bilder, Tonaufnahmen oder Videos verarbeiten. Im Rahmen dieses Data Science Trainings verwenden wir nur strukturierte Daten, die in Form von Tabellen vorkommen. + +2.2.3 Skalenniveaus +Strukturierte Daten lassen sich nicht nur durch Datentypen beschreiben, sondern auch durch die zugrundeliegenden Skalenniveaus. Das Skalenniveau legt u. a. fest, welche Berechnungen mit den Daten möglich und sinnvoll sind. Wir unterscheiden drei bzw. vier Skalenniveaus (vgl. Abb. 2.4). + +44 + +2 Datenverständnis + +Abb. 2.4 Skalenniveaus mit Lageparameter, Beispielen und Eigenschaften +Nominalskala Nominalskalierte Werte unterscheiden wir zwar voneinander, aber es gibt keine Rangfolge zwischen diesen. Das Geschlecht von Personen codieren wir bspw. mit den diskreten Werten männlich (m), weiblich (w) und divers (d). Wir können solche Nominalwerte als Texte, d. h. Strings, darstellen. Der Lageparameter zu Nominalwerten ist der Modus (engl. Mode) bzw. Modalwert, also der häufigste Wert. +Ordinalskala Wenn es nun eine Rangfolge zwischen den Werten gibt, wir aber keinen Abstand zwischen diesen definieren können, dann sind die Werte ordinalskaliert. Ein typisches Beispiel sind die deutschen Schulnoten: sehr gut > gut > befriedigend > ausreichend > mangelhaft > ungenügend. Das Größerzeichen als Vergleichsoperator gibt an, dass eine sehr gute Leistung besser ist als eine gute Leistung usw. Oft sind diese Werte als Zahlen codiert: sehr gut = 1, gut = 2, befriedigend = 3, ausreichend = 4, mangelhaft = 5, ungenügend = 6. Dadurch können wir die Daten leicht sortieren, z. B. aufsteigend nach dem Notenwert. Der Lageparameter zur Ordinalskala ist der Median, d. h. der Zentralwert. Der Median liegt genau in der Mitte der Liste der sortieren Datenwerte. Nominal- und ordinalskalierte Attribute bezeichnen wir auch als kategorial oder kategorisch. +Kardinalskala Wenn wir einen interpretierbaren Abstand zwischen den Werten bilden können, dann sind die Daten kardinalskaliert. Diese Daten bezeichnen wir auch als metrische Daten. Es muss dann eine Metrik definiert sein, auf der wir den Abstand als nichtnegative reelle Zahl berechnen können. Die Werte dieser Daten sind als numerische Zahlen gegeben. Wir unterscheiden noch, ob es einen natürlichen Nullpunkt (Verhältnisskala) oder nicht (Intervallskala) gibt. Ein Beispiel für eine Verhältnisskala ist der Preis in Euro mit Null als natürlichem Nullpunkt (0 Euro). Der Lageparameter ist hier der Mittelwert, d. h. das geometrische Mittel. Bei der + +2.2 Daten + +45 + +Intervallskala (z. B. die Temperatur in Grad Celsius) nehmen wir das arithmetische Mittel (Durchschnitt) als Lageparameter. +Eigenschaften Die Werte eines kardinalskalierten Attributs sind meistens stetig, d. h. kontinuierlich. Die Werte der anderen Skalenniveaus sind dagegen meistens diskret. Es sind abzählbar viele Werte vorhanden. Nominal- und ordinalskalierte Attribute sind häufbar oder nicht häufbar. Beispielsweise ist das Geschlecht nicht häufbar. Eine Person besitzt ein Geschlecht. Die Telefonnummer dagegen ist häufbar. Eine Person kann mehrere Telefonnummern haben. +Merkregel Mit Hilfe des französischen Begriffs NOIR für die Farbe Schwarz, prägen wir uns die vier Skalenniveaus ein: N = Nominal, O = Ordinal, I = Intervall, R = Ratio (für Verhältnis). Diese Einteilung geht auf Stevens zurück, auch wenn er in seinem Artikel aus dem Jahr 1946 nicht explizit das Akronym NOIR verwendete [4]. + +2.2.4 Datenqualität +Garbage in, garbage out. +Dieser Leitsatz bringt es auf den Punkt. Datenqualität ist wichtig für die Datenanalyse. Wir teilen die Datenqualität in drei Kategorien ein: Interpretierbarkeit, Nützlichkeit und Glaubwürdigkeit (s. Abb. 2.5). +Interpretierbarkeit Unter Einheitlichkeit verstehen wir, dass die Daten eine feste Struktur haben. Wenn die Daten also bspw. in tabellarischer Form vorliegen, dann ist dieses Kriterium bereits erfüllt. Eindeu- + +Abb. 2.5 Datenqualität: Kategorien und Kriterien + +46 + +2 Datenverständnis + +tigkeit ist gegeben, wenn die Bedeutung der Daten zweifelsfrei klar ist. Hierzu benötigen wir sehr gute Metadaten (z. B. sinnvolle Attributnamen und aussagekräftige Beschreibungen). Verständlichkeit meint einerseits, dass die Daten für den Menschen verständlich sind und andererseits, dass Maschinen diese Daten lesen und verarbeiten können. Wenn diese drei Kriterien erfüllt sind, dann sind die Daten interpretierbar. + +Nützlichkeit Vollständigkeit heißt, dass alle Datenwerte vorliegen, es also keine fehlenden Daten gibt. Genauigkeit meint, dass die Attributwerte im gewünschten Detaillierungsgrad vorliegen. Unter Zeitnähe verstehen wir, dass die Daten aktuell und nicht veraltet sind. Redundanzfreiheit ist dann gegeben, wenn es zu keinerlei Doppelungen in den Daten kommt. Relevanz bedeutet, dass die vorliegenden Daten zur Fragestellung passen. Wenn diese fünf Kriterien erfüllt sind, dann sind die Daten nützlich im Sinne der Datenanalyse. +Glaubwürdigkeit Unter Korrektheit verstehen wir, dass die Attributwerte eines Datenobjekts denen der realen Welt entsprechen. Konsistenz bedeutet Widerspruchsfreiheit. Damit ist gemeint, dass es keine logischen Widersprüche in den Daten gibt. Zuverlässigkeit heißt, dass die Attributwerte nicht vage oder unsicher sind, sondern dass bspw. deren Entstehung bzw. Herkunft nachvollziehbar ist. Wenn diese Kriterien erfüllt sind, dann sind die Daten glaubwürdig. +Schlüsselintegrität Manchmal gibt es auch noch eine vierte Kategorie. Wenn die Daten aus einer relationalen Datenbank stammen, dann gelten spezielle Integritätsbedingungen. Die Schlüsseleindeutigkeit oder Entity-Integrität besagt, dass wir jedes Datenobjekt mittels eines Primärschlüsselattributs beschreiben können und die zugehörigen Attributwerte eindeutig sind. Logische Beziehungen zwischen den Relationen (Datentabellen) sind typisch für relationale Datenbanken. Mittels Primärschlüssel-Fremdschlüssel-Beziehungen zwischen den Tabellen realisieren wir diese Anforderung. Die referenzielle Integrität stellt dabei sicher, dass die Datenbank die Daten konsistent über mehrere Tabellen verteilt speichert. + +2.2.5 Explorative Datenanalyse +Die explorative Datenanalyse (EDA) ist ein Teilgebiet der Statistik. Genauer gesagt ist die EDA eine Ergänzung bzw. Weiterentwicklung der deskriptiven Statistik, also der beschreibenden Statistik. Ein wesentliches Ziel ist das Bilden von Hypothesen auf Basis von UrsacheWirkung-Zusammenhängen, die sich in den beobachteten Daten widerspiegeln. Die EDA benutzt Visualisierungstechniken, um die Daten zu veranschaulichen. Dadurch verdeutlichen wir bereits Zusammenhänge in den Daten, die wir ansonsten in den reinen Datenreihen nicht erkannt hätten. So können wir bspw. Ausreißer identifizieren, um zu entscheiden, wie + +2.2 Daten + +47 + +Abb. 2.6 Verschiedene Diagrammtypen – eine Auswahl +wir mit diesen verfahren. In Abb. 2.6 ist eine Auswahl von Diagrammtypen zusammengestellt. +Streudiagramm Zu den bekanntesten und einfachsten Standardvisualisierungen gehört das Streudiagramm (engl. Scatter Plot). Dieses benutzen wir zur Darstellung der Rohdaten, um uns damit einen ersten Eindruck von den Daten zu verschaffen. +Balkendiagramm und Histogramm Das Balken- oder Säulendiagramm (engl. Bar Chart) verwenden wir zur Präsentation von Ergebnissen. Eine spezielle Form ist das Histogramm, das die Häufigkeitsverteilung eines Attributs als Balken- oder Säulendiagramm darstellt. Im Fall von kardinalskalierten Attributen müssen wir die Datenwerte zunächst in definierte Klassen (engl. Bins) einteilen. Diese Operation heißt Binning (vgl. Abschn. 5.2.2). +Tortendiagramm Das Kreis- bzw. Kuchen- oder Tortendiagramm (engl. Pie Chart) ist geeignet, um prozentuale Anteile darzustellen. Diese prozentualen Anteile addieren sich zu 100 % und bilden den gesamten Kreis. Mit dem Gradmaß als Winkelmaß entsprechen diese 100 % genau 360◦. Die einzelnen Anteile sind dann Kuchenstücke in diesem Kreis. + +48 + +2 Datenverständnis + +Box-Plot Der Box-Plot ist ein Diagramm, um die Verteilung der Daten nach statistischen Aspekten darzustellen. Dabei müssen die Daten mindestens ordinalskaliert sein. Zu den sortieren Daten bestimmen wir dann die Quartile. Die Begrenzungen der Box sind die Quartile Q1 (25 %) und Q3 (75 %). Somit enthält die Box genau 50 % der Daten. Die anderen 50 % der Daten liegen außerhalb der Box. Der Median Q2 (50 %) trennt die Daten innerhalb der Box dann noch einmal in zwei gleich große Teile. Der Box-Plot stellt das Minimum Q0 (0 %) und das Maximum Q4 (100 %) häufig als Antennen, sog. Whisker, und ggf. Ausreißer als einzelne Punkte dar. +Heatmap Eine Heatmap bildet die Daten auf eine Temperaturskala ab. Mit Hilfe von Farbskalen visualisieren wir Wertebereiche. Normalerweise bekommen hohe Datenwerte rote Farbtöne und niedrige Datenwerte blaue Farbtöne. + +2.2.6 Korrelationsanalyse +Ein zweidimensionales Streudiagramm zeigt den Zusammenhang zwischen zwei Attributen. Jeder Datenwert wird dabei als grafisches Symbol in einem kartesischen Koordinatensystem (X- und Y-Achse) dargestellt. Aus dieser Grafik leiten wir ggf. bereits einen funktionalen Zusammenhang zwischen den beiden Attributen ab. Eine einfache Funktion ist die Gerade. Sie stellt bspw. eine Linie zwischen zwei Punkten dar. Formal beschreiben wir diesen linearen Zusammenhang durch die Funktion y = f (x) = b · x +a mit Steigung b und Ordinatenabschnitt a. Die Korrelationsanalyse untersucht ebenfalls Zusammenhänge zwischen zwei (oder mehreren) Attributen. Hierzu benutzt die Korrelationsanalyse statistische Größen. Der lineare Korrelationskoeffizient ist ein dimensionsloser Wert im Bereich zwischen −1 und +1. Er ist ein Maß für den Grad des linearen Zusammenhangs zwischen zwei Attributen. Bei einem positiven Wert in der Nähe von +1 liegt eine starke lineare Korrelation zwischen den beiden Attributen vor. Wenn der Wert des einen Attributs steigt, dann steigt auch der Wert des anderen Attributs und umgekehrt. Bei einem negativen Korrelationskoeffizienten in der Nähe von −1 liegt eine starke negative lineare Korrelation vor. In diesem Fall sinkt dann der Wert des zweiten Attributs, wenn der Wert des ersten Attributs steigt und umgekehrt. Korrelationskoeffizienten nahe null bedeuten, dass es keine solchen linearen Beziehungen zwischen den Attributen gibt. Die Attributwerte ändern sich dann beliebig, ohne dass Abhängigkeiten zwischen diesen erkennbar sind. Diese kann es durchaus geben, aber sie sind nicht linear. Mit der Korrelationsanalyse beschäftigen wir uns ausführlicher in Abschn. 12.2.2. + +2.3 Die passenden Fragen stellen + +49 + +2.3 Die passenden Fragen stellen + +Ziel, Zweck & Aktivitäten +Ziel Wir verstehen die gegebenen Daten und bewerten deren Qualität. Zweck Nur wenn wir die Daten verstehen, können wir diese analysieren. Damit wir +gute Analyseergebnisse bekommen, benötigen wir gute Daten. A2.1 Fragen beantworten (s. Checkliste) +Anstatt vieler Aktivitäten zu beschreiben, benutzen wir nun stellvertretend einen Fragenkatalog. + +Fragen +Den folgenden Fragenkatalog benutzen wir als Checkliste. Die ersten elf Fragen betreffen die Datenqualität in Anlehnung an Abb. 2.5. + +Interpretierbarkeit Einheitlichkeit Eindeutigkeit Verständlichkeit + +1. Sind die Daten einheitlich strukturiert? 2. Sind die Daten eindeutig interpretierbar? 3. Sind die Daten verständlich? Kann ein Rechner diese automatisiert verarbeiten? + +Nützlichkeit Vollständigkeit Genauigkeit Zeitnähe Redundanzfreiheit Relevanz + +4. Gibt es fehlende Daten? Gibt es Gründe dafür? 5. Sind die Daten präzise genug für die Analyse? 6. Sind die Daten aktuell? 7. Gibt es doppelte Datenobjekte? 8. Sind die Daten sinnvoll im Hinblick auf das Erreichen der Datenziele? + +Glaubwürdigkeit Korrektheit Konsistenz Zuverlässigkeit + +9. Gibt es fehlerhafte Daten? Gibt es Ausreißer? 10. Sind die Daten widerspruchsfrei und plausibel? 11. Sind die Daten und deren Herkunftsquellen vertrauenswürdig? + +Sonstige Datentypen Skalenniveaus Verteilung Korrelationen + +12. Welche Datentypen haben die Attribute? 13. Welche Skalenniveaus haben die Attribute? 14. Wie sind die Attributwerte verteilt? 15. Gibt es Beziehungen zwischen den Attributen? + +50 + +2 Datenverständnis + +Um Frage 3 zu beantworten, nutzen wir die Beschreibungen auf Kaggle: https://www.kaggle.com/c/titanic/data. +Ansonsten erstellen wir spezielle Programme, um uns die Daten genauer anzusehen. +CSV-Format Prinzipiell können wir auch eine Tabellenkalkulationssoftware wie bspw. Excel benutzen, um den Inhalt der CSV-Datei anzuzeigen. CSV-Dateien benötigen ein Trennzeichen, das die Attributwerte voneinander trennt. In der gegebenen Datei ist es das Komma. CSV bedeutet comma-separated values. Die deutsche Excel-Version ist standardmäßig mit dem Semikolon als Attribut-Trennzeichen konfiguriert, denn das Komma dient bereits als Dezimaltrennzeichen. Somit lassen sich die Daten in Excel nur dann vernünftig anzeigen, wenn wir die Konfiguration anpassen. Da wir jedoch zwei andere Werkzeuge haben, die sehr gut mit CSV-Daten umgehen können, benutzen wir diese auch zum Anzeigen der Daten. + +2.4 Die ersten Analysen +Wir erstellen sieben Programme, um die 15 Fragen zu beantworten. Somit schreiben wir nicht zu jeder Frage ein eigenes Programm. +Programme P2.1 Allgemeine & statistische Infos [Fragen 1 bis 13: T&T] P2.2 Verteilung der Klassen [Frage 14: T] P2.3 Ausreißeranalyse [Frage 9: T&T] P2.4 Korrelationsanalyse [Fragen 8 & 15: T,T] P2.5 Streudiagramme [Frage 9: T,T] P2.6 Box-Plots [Fragen 9 & 14: T,T] P2.7 Histogramme [Frage 14: T] +Mit dem ersten Programm können wir bereits viele Fragen beantworten. Die Programme 2 bis 4 sind Datenanalysen, die teilweise grafische Elemente nutzen, um Daten bzw. Ergebnisse zu visualisieren. Die Programme 5 bis 7 nutzen spezielle Grafiken der EDA. Die Angaben hinter den Nummern der Fragen beziehen sich auf die zu verarbeitenden Datenmengen und bedeuten: +T Wir analysieren nur die Trainingsdaten. T,T Wir analysieren Trainings- und Testdaten getrennt voneinander. T&T Wir führen beide Datenmengen zusammen und analysieren sie gemeinsam. + +2.4 Die ersten Analysen + +51 + +In KNIME Analytics führen wir Daten mit dem Knoten Concatenate zusammen (Fall T&T). In Python heißt die entsprechende Funktion concat(): +df = pd.concat([df_train, df_test], ignore_index=True) + +KNIME-Tipps (Knoten) + +P2.1 CSV Reader [2x], Concatenate, Statistics P2.2 CSV Reader, Value Counter, Pie Chart (legacy), Color Manager P2.3 CSV Reader [2x], Concatenate, Numeric Outliers [3x] P2.4 CSV Reader [2x], Linear Correlation [2x] P2.5 CSV Reader [2x], Scatter Plot (legacy) [2x] P2.6 CSV Reader [2x], Box Plot (legacy) [2x] P2.7 CSV Reader, Interactive Histogram (legacy) + +In den eckigen Klammern nach den Namen der Knoten ist angegeben, wie oft wir diesen Knoten im KNIME Workflow benutzen. Einige Knoten tragen den Begriff legacy (früher: local) in runden Klammern am Ende ihrer Bezeichnung. Damit ist gemeint, dass KNIME Analytics die Grafiken mit Hilfe einer lokalen Java-Bibliothek (z. B. Swing) sehr schnell erstellt, was für unsere Zwecke ausreicht, es aber auch neuere Knoten gibt. Im Folgenden verzichten wir auf diesen Zusatz. Wir können Grafiken exportieren, um sie ggf. mit anderen Programmen weiterzuverarbeiten. Hierzu benutzen wir in der View zum jeweiligen Knoten die Funktion File > export as. Als Exportformate wählen wir portable Netzwerkgrafiken (engl. Portable Network Graphics, PNG) oder skalierbare Vektorgrafiken (engl. Scalable Vector Graphics, SVG). + +Anaconda-Tipps (Funktionen) + +P2.1 df.describe(), df.isnull().sum() , df.convert_dtypes(), df.info() P2.2 df_train[’Survived’].value_counts(), .plot(kind=’pie’) P2.3 dst_outliers(df, , n=4) P2.4 df.corr(method=’pearson’) P2.5 plt.scatter(, ) P2.6 plt.boxplot(df) P2.7 plt.hist(df[], bins=) + +plt steht für das Pyplot-Modul des Matplotlib-Pakets. Box-Plots können wir nur dann erstellen, wenn keine fehlenden Daten vorliegen. Mit Hilfe der dropna()-Funktion entfernen wir fehlende Daten aus dem Data Frame df. Die Abkürzung na steht für not available und + +52 + +2 Datenverständnis + +meint fehlende Werte. Das Seaborn-Paket bietet optionale Möglichkeiten, Daten zu visualisieren. Seaborn selbst basiert auf Matplotlib und ist ggf. etwas einfacher in der Bedienung und Verarbeitung von Daten aus Pandas Data Frames. Nützliche Funktionen sind bspw. scatterplot(), swarmplot(), stripplot(), histplot() und catplot(). +Die Ausreißeranalyse gestaltet sich in Python etwas komplizierter. Hierfür verwenden wir zwei Funktionen bzw. Definitionen, die nicht in den Standardpaketen enthalten sind. Die erste Funktion ist die kommentierte Version des Quelltextes eines Kaggle-Benutzers [5]. Die zweite Funktion ruft dann diese erste auf. Die Namen dieser neuen Funktionen beginnen mit dem Präfix dst für Data Science Training. +dst_zscore_outlier +# Den kleinsten Ausreißer bestimmen def dst_zscore_outlier(df, col, n=4): +out = [] # Initialisierung mn = np.mean(df[col]) # Mittelwert sd = np.std (df[col]) # Standardabweichung for x in df[col]: # Schleife über alle Datenzeilen +z = (x - mn) / sd # z-score (mean = 0, std = 1) if np.abs(z) > n: # z-score > n-fache Standardabw. ? +out.append(x) # Rückgabe: Minimum der Ausreißer return np.min(out) + +Die Ausreißeranalyse basiert darauf, dass wir die Daten eines ausgewählten Attributs (col) zunächst standardisieren. Diese Technik lernen wir eigentlich erst in Abschn. 5.2.3 kennen. Nach der Standardisierung ist das Attribut ähnlich einer Normalverteilung verteilt. Zumindest ergeben sich ein Mittelwert von null und eine Standardabweichung von eins. Wir vergleichen dann alle Werte, diese bezeichnen wir als z-scores, und identifizieren solche, die mehr als eine n-fache Standardabweichung vorweisen. Das sind für uns die Ausreißerwerte. Für den Parameter n können wir beliebige Werte einstellen. Als Voreinstellung (engl. Default) benutzen wir n = 4. Die Funktion liefert schließlich den kleinsten Ausreißerwert zurück. Die nächste Funktion gibt alle Ausreißer zu diesem Attribut (col) unseres Data Frames (df) als sortierte und formatierte Tabelle aus. + +2.5 Es leuchtet blau + +53 + +dst_zscore_outlier +# Alle Ausreißer bestimmen und ausgeben def dst_outliers(df, col, n=4): +# 1. Den kleinsten Ausreißer bestimmen min_outlier = dst_zscore_outlier(df, col, n) # 2. Nach allen Ausreißern filtern df1 = df[df[col] >= min_outlier] # 3. Die Daten absteigend sortieren # (d.h. die größten Ausreißer kommen zuerst) df1 = df1.sort_values(by=col, ascending=False) # 4. Die Anzahl der Ausreißer ausgeben print(col, ’: Anzahl Ausreißer =’, df1.shape[0]) # 5. Die Tabelle mit allen Ausreißern anzeigen display(df1) + +Lösungsvorschläge +Erklärvideos und KNIME Workflows bzw. Jupyter Notebooks zu diesem Kapitel sind unter dem folgenden Link zu finden: https://data-science.training/kapitel-2/. +2.5 Es leuchtet blau +In Abschn. 2.3 stellten wir die passenden Fragen. In Abschn. 2.4 zeigten wir, welche Programme Anna und Karl erstellen, um diese beantworten zu können. Jetzt geben sie die Antworten als Zusammenfassung. Vorausgegangen sind Recherchen und Analysen sowie Diskussionen mit Max und Hintergrundinformationen von Sophia. +Frage 1: Sind die Daten einheitlich strukturiert? Ja. Die Daten sind in CSV-Dateien gegeben. Wir können sie deshalb strukturiert in Form von Tabellen verarbeiten. Wir haben zunächst zwei Mengen von Daten: 891 Datenobjekte in den Trainingsdaten und 418 Datenobjekte in den Testdaten, insgesamt also 1309 Datenobjekte. Des Weiteren gibt es noch 23 Datenobjekte in den Anwendungsdaten, die wir im Folgenden aber nicht weiter betrachten. Tab. 2.1 zeigt die Übersicht zu den zwölf Attributen der Trainings- und Testdaten. Das Klassenattribut Survived ist nur in den Trainingsdaten vorhanden. In der letzten Spalte sind die Anzahlen der fehlenden Werte notiert (# NA). Nicht alle Werte sind selbsterklärend, es gilt: + +54 + +Tab. 2.1 Struktur und Beschreibung der Titanic-Daten + +Nr Attribut + +Beschreibung Domäne + +Datentyp + +1 PassengerId Primärschlüssel 1, 2, 3, …, 1309 Integer + +2 Survived Klassen (Label) 0, 1 + +Integer + +3 Pclass + +Passagierklasse 1, 2, 3 + +Integer + +4 Name + +Passagiername Text + +String + +5 Sex + +Geschlecht + +male, female String + +6 Age + +Alter + +0,17–80 + +Double + +7 SibSp + +Geschwister & 1, 2, 3, …, 8 Partner + +Integer + +8 Parch + +Eltern & Kinder 1, 2, 3, …, 9 Integer + +9 Ticket + +Ticketnummer Alphanumerisch String + +10 Fare + +Ticketpreis + +0,00–512,3292 Double + +11 Cabin + +Kabinennummer Alphanumerisch String + +12 Embarked Abfahrtshafen S, C, Q + +Integer + +2 Datenverständnis + +Skalenniveau Nominal Nominal Ordinal Nominal Nominal Kardinal Kardinal + +# NA 0 +418 0 0 0 +263 0 + +Kardinal Nominal Kardinal Nominal Nominal + +0 0 1 1014 2 + +Survived: Überlebt? 0 = Nein, 1 = Ja Pclass: 1 = erste, 2 = zweite, 3 = dritte Passagierklasse Embarked: C = Cherbourg, Q = Queenstown (heute: Cobh), S = Southampton +Frage 2: Sind die Daten eindeutig interpretierbar? Ja. Letztendlich ist die Bedeutung der Daten klar. Nicht alle Attributnamen sind selbsterklärend. Hier helfen dann die Beschreibungen auf der Kaggle-Webseite. Die Attribute SibSp und Parch sind Abkürzungen für siblings und spouses sowie parents und children. Das erste Attribut gibt die Anzahl der mitreisenden Geschwister und Ehepartner an. Das zweite Attribut zählt die mitreisenden Eltern und Kinder. Im ersten Attribut haben wir es also normalerweise mit der gleichen Generation des Passagiers zu tun. Das zweite Attribut beschreibt eine Generation davor und eine Generation danach. Warum Kaggle eine solche Aufteilung vorgenommen hat, ist unklar. In der Beantwortung der Frage Nr. 11 stellen wir hierzu eine Vermutung an. +Frage 3: Sind die Daten verständlich? Kann ein Rechner diese automatisiert verarbeiten? Ja. Die Daten sind weitestgehend verständlich (s. auch Tab. 2.1). Ein PC kann die Daten automatisiert verarbeiten. Allerdings stecken bspw. im Namen weitere Informationen, die wir nicht so einfach extrahieren können. Hierzu benötigen wir spezielle Textoperationen (s. Abschn. 5.2.4). Erste Erkenntnisse sind: + +2.5 Es leuchtet blau + +55 + +Pass.Id: Die PassengerId ist eine fortlaufende Nummer zur eindeutigen Identifizierung + +eines Passagiers. Dieses Schlüsselattribut enthält aber keine relevanten Informa- + +tionen für die Datenanalyse. + +Name: In den Namen stecken weitere Informationen wie z. B. die Anrede, der Titel, der + +Geburtsname von verheirateten Frauen usw. + +Age: + +Das Alter wurde manchmal geschätzt (Kommazahl) oder fehlt. + +Ticket: Die genaue Systematik der Ticketnummer ist unklar. Es sind nicht unbedingt + +fortlaufenden Nummern wie bei der PassengerId. Manchmal besteht die Tick- + +etnummer nur aus drei bis sechs Ziffern. Manchmal ist ein Präfix vorangestellt, + +meistens eine Abkürzung (z. B. F.C.C.). Eine spezielle Ticketnummer ist LINE. + +Fare: Der Reisepreis bzw. Ticketpreis bezieht sich ggf. auf mehrere Passagiere, die + +unter der gleichen Ticketnummer gereist sind. + +Cabin: Die Kabinennummer, falls vorhanden, beginnt mit dem Buchstaben des Decks + +(A bis G, s. Abb. 2.7). Passagiere der 3. Klasse teilten sich vermutlich größere + +Kabinen. Diese Daten sind kaum erfasst. + +Sehen wir uns zu den Namen der Passagiere ein Beispiel an. Der längste Name mit 82 Zeichen ist: Penasco y Castellana, Mrs. Victor de Satode (Maria Josefa Perez de Soto y Vallejo). Es handelt sich um Maria Josefa Perez, geborene Soto Vallejo, die mit Victor Satode Peñasco Castellana verheiratet ist. In der heutigen Zeit ist es befremdlich, eine verheiratete Frau mit dem Namen ihres Ehemanns anzusprechen. Dieses Beispiel ist außerdem ein Spezialfall. In Spanien war es üblich, dass Kinder den ersten Nachnamen des Vaters und den ersten Nachnamen der Mutter bekommen. Mit dem Wort y für und können wir beide Nachnamen miteinander verbinden. Um Vor- und Nachnamen leichter zu unterscheiden, können wir zwischen diesen ein de setzen. Die Passagiernamen sind generell nach dem folgenden Schema aufgebaut: , . Optional folgen dann noch Rufnamen in Anführungszeichen oder Geburtsnamen von verheirateten Frauen in runden Klammern. +Die Ticketnummern geben einige Mysterien auf. Der häufigste Präfix ist mit 92 Vorkommen PC. Zu den Ticketnummern mit diesem Präfix gehören ausnahmslos Passagiere der ersten Klasse. Sie zahlten Ticketpreise von ca. 26 bis 512 Pfund für die Reise mit der Titanic. Von den 92 Kabinennummern sind 67 bekannt. In Southampton gingen 20 Passagiere an Bord und 72 weitere stiegen in Cherbourg zu. Die Abkürzung PC könnte bspw. Private Class oder Private Cabin bedeuten. Unter den Passagieren mit den PC-Ticketnummern waren viele Multimillionäre. + +56 + +2 Datenverständnis + +Sophias Welt: Die Multimillionäre auf der Titanic [2, 7] Zu den bekanntesten Multimillionären auf der RMS Titanic gehörte John Jacob Astor4, der mit seiner Ehefrau Madeleine5 reiste. John Jacob war der Urenkel des Pelzhändlers und Immobilienmagnaten Johann Jakob Astor, der aus Walldorf stammte und als erster Multimillionär Amerikas gilt. Im Jahr 1897 baute John Jacob das nach der Familie benannte Astoria Hotel, welches mit dem WaldorfHotel seines Cousins zusammengelegt und in Waldorf-Astoria umbenannt wurde. Als die Titanic mit dem Eisberg kollidierte, nahm John Jacob gerade einen Drink im Rauchersalon zu sich. Er kommentierte den Unfall mit dem Spruch „I asked for ice, but this is ridiculous“. John Jacob überlebte die Katastrophe nicht. Madeleine brachte vier Monate nach dem Untergang den gemeinsamen Sohn John Jacob Astor VI zur Welt. +Der US-amerikanische Geschäftsmann Benjamin Guggenheim6 machte seinerzeit ein geschätztes Vermögen von 380 Mio. Dollar im Bereich Bergbau, insb. mit der Produktion von Kupfer. Er war mit seiner französischen Geliebten Léontine Aubart7 auf der Titanic. Diese Information wurde der Presse jedoch verschwiegen. Beide reisten mit separaten Tickets und belegten unterschiedliche Kabinen, zumindest auf dem gleichen Deck. Benjamin machte nach dem Zusammenstoß auf sich aufmerksam, indem er zusammen mit seinem Butler die beste Abendgarderobe anzog und sagte „We’ve dressed up in our best and are prepared to go down like gentlemen“. Zuvor hatte er Léontine noch in das Rettungsboot Nr. 9 gesetzt. +Isidor Straus8 war ein deutsch-amerikanischer Geschäftsmann und Politiker. Zusammen mit seinem Bruder wurde er 1888 Teilhaber des Kaufhauses Macy’s. An Bord der Titanic war er mit seiner Ehefrau Ida9. Während der Evakuierung bekam Ida einen Platz in Rettungsboot Nr. 8. Isidor durfte jedoch nicht ins Boot, weil er ein Mann war. Daraufhin sagte Ida „We have lived together for many years. Where you go, I go“ und verließ das Rettungsboot. Sie überließ ihrem Dienstmädchen Ellen Bird10 noch ihren Pelzmantel. Die beiden Straus setzten sich schließlich nebeneinander auf ein paar Liegestühle. +Auch Arthur Ryerson und John Thayer gehörten zu den Multimillionären und waren mit ihren Familien an Bord. Von ihnen hören wir noch an anderer Stelle. +Die Ticketnummer LINE kommt vier Mal in den Daten vor. Das ist vermutlich eine Anspielung auf die Reederei White Star Line. Das Unternehmen wurde 1869 von Thomas Ismay gegründet und betrieb regelmäßige Lieferdienste von Europa nach New York. Die Titanic und das etwas ältere Schwesterschiff Olympic waren 1912 die größten Schiffe der White +4 Astor, Col. John Jacob; id: 1094; pclass: 1; sex: male; age: 47; sibsp: 1; parch: 0; ticket: PC 17757; fare: 227,525; cabin: C62 C64; embarked: C; survived: ? [Kaggle]. 5 Astor, Mrs. John Jacob (Madeleine Talmadge Force) ; id: 701; pclass: 1; sex: female; age: 18; sibsp: 1; parch: 0; ticket: PC 17757; fare: 227,525; cabin: C62 C64; embarked: C; survived: 1 [Kaggle]. 6 Guggenheim, Mr. Benjamin; id: 790; pclass: 1; sex: male; age: 46; sibsp: 0; parch: 0; ticket: PC 17593; fare: 79,2; cabin: B82 B84; embarked: C; survived: 0 [Kaggle]. 7 Aubart, Mme. Leontine Pauline; id: 370; pclass: 1; sex: female; age: 24; sibsp: 0; parch: 0; ticket: PC 17477; fare: 69,3; cabin: B35; embarked: C; survived: 1 [Kaggle]. 8 Straus, Mr. Isidor; id: 973; pclass: 1; sex: male; age: 67; sibsp: 1; parch: 0; ticket: PC 17483; fare: 221,779; cabin: C55 C57; embarked: S; survived: ? [Kaggle]. 9 Straus, Mrs. Isidor (Rosalie Ida Blun); id: 1006; pclass: 1; sex: female; age: 63; sibsp: 1; parch: 0; ticket: PC 17483; fare: 221,779; cabin: C55 C57; embarked: S; survived: ? [Kaggle]. 10 Bird, Miss. Ellen; id: 1048; pclass: 1; sex: female; age: 29; sibsp: 0; parch: 0; ticket: PC 17483; fare: 221,779; cabin: C97; embarked: S; survived: ? [Kaggle]. + +2.5 Es leuchtet blau + +57 + +Abb. 2.7 Titanic-Querschnitt mit Anordnung der Decks [6] + +58 + +2 Datenverständnis + +Star Line. Der Reisepreis zur Ticketnummer LINE betrug null Pfund. Der Reisepreis null kommt jedoch insgesamt 17 Mal in den Daten vor. Dabei ist eine Auffälligkeit in den Ticketnummern erkennbar. Es sind nahezu fortlaufenden Nummern ab 112050 bzw. ab 239853. Passagiere, deren Ticketnummer mit der Zahl Eins beginnt, waren erste Klasse gereist. Entsprechend waren diejenigen, deren Ticketnummer mit der Zahl Zwei bzw. Drei beginnt, in der zweiten bzw. dritten Klasse untergebracht. Diese Regel gilt generell, jedoch nur für sechsstellige Ticketnummern ohne Präfix. Kürzere Ticketnummern sind ggf. unvollständig. Sehen wir uns eine Gruppe von Passagieren nun etwas genauer an, die kostenlos mit der Titanic fuhren. + +Sophias Welt: H&W Guarantee Group [7] Die Guarantee Group war ein neunköpfiges Team der Belfaster Werft Harland & Wolff (vgl. Abb. 2.8) unter der Leitung des Schiffsarchitekten Thomas Andrews11. Sie begleitete die Titanic auf ihrer Jungfernfahrt, um unvollendete Arbeiten zu überwachen und auftretende Probleme direkt zu beheben. Den Untergang der Titanic konnten sie jedoch nicht verhindern. Nach Begutachtung der Schäden im vorderen Teil des Schiffes teilte der verantwortliche Konstrukteur Thomas Andrews dem Kapitän Edward J. Smith mit, dass die Titanic voraussichtlich innerhalb von zwei Stunden sinken wird. Die Guarantee Group war zwar in normalen Passagierkabinen der ersten und zweiten Klasse untergebracht, die Mitglieder zählten aber eher zur Besatzung der Titanic. Allenfalls Thomas Andrews stellte eine Ausnahme dar. Er war in Kabine A36 untergebracht, direkt neben dem großen Treppenhaus, welches sechs Decks miteinander verband und von den Passagieren der ersten Klasse häufig frequentiert wurde. Dadurch hatte Andrews während der Reise Kontakt zu diesen Passagieren und nahm auch am gesellschaftlichen Leben teil. Joseph „Joey“ Thompson, ein 34-jähriger Maler und Dekorateur, gehörte zwar auch zur Guarantee Group, er verließ die Gruppe jedoch in Southampton und reiste nach Belfast zurück. Die anderen sieben Männer waren: + +William Campbell12: Roderick Chisholm13: Alfred Fleming Cunningham14: Anthony Wood Frost15: + +20 Jahre, Schreiner, Lehrling, 43 Jahre, Chefzeichner, 21 Jahre, Maschinenschlosser, Lehrling, 38 Jahre, Maschinenschlosser, Vorarbeiter, + +11 Andrews, Mr. Thomas Jr; id: 807; pclass: 1; sex: male; age: 39; sibsp: 0; parch: 0; ticket: 112050; fare: 0; cabin: A36; embarked: S; survived: 0 [Kaggle]. 12 Campbell, Mr. William; id: 467; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239853; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. 13 Chisholm, Mr. Roderick Robert Crispin; id: 1158; pclass: 1; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 112051; fare: 0; cabin: ?; embarked: S; survived: ? [Kaggle]. 14 Cunningham, Mr. Alfred Fleming; id: 414; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239853; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. 15 Frost, Mr. Anthony Wood „Archie“; id: 482; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239854; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. + +2.5 Es leuchtet blau + +59 + +Robert Knight16: Francis Parkes17: William Henry Marsh Parr18: Ennis Hastings Watson19: + +42 Jahre, Chefingenieur, 21 Jahre, Klempner, Lehrling, 29 Jahre, Elektriker, stellv. Abteilungsleiter, 18 Jahre, Elektriker, Lehrling. + +Keiner dieser Männer überlebte die Titanic-Katastrophe. Keiner ihrer Körper wurde geborgen. Während der letzten zwei Stunden des Untergangs ermutigte Thomas Andrews viele Passagiere, ihre Rettungswesten anzulegen und sich zu den Rettungsbooten zu begeben. Er selbst wurde angeblich zuletzt im Rauchersalon der ersten Klasse gesehen. Mit abgelegter Rettungsweste betrachtete der Schiffsarchitekt ein Gemälde an der Wand, starrte aber eigentlich nur noch ins Leere. Allerdings ist das nur eine Legende. Beweise dafür, dass es sich so zugetragen hat, gibt es nicht. + +Die Reisepreise sind als Dezimalzahlen in britischen Pfund angegeben. Zur Zeit der TitanicKatastrophe verwendeten die Engländer ein System aus Pfund Sterling (£), Shilling (s) und Pence (d). Die Abkürzungen s und d gehen auf die lateinischen Bezeichnungen solidus und denarius zurück. Ein Pfund Sterling entsprach 20 Shilling und ein Shilling wiederum hatte einen Wert von 12 Pence. Damit entsprachen 240 Pence genau einem Pfund Sterling. Ein Reisepreis von bspw. £7 17 s 6d betrug umgerechnet 7,875 Pfund. Wir benutzen Dezimalzahlen, denn diese lassen sich einfacher speichern und verarbeiten. + +Frage 4: Gibt es fehlende Daten? Gibt es Gründe dafür? Ja, zu fünf Attributen gibt es fehlende Werte. + +Survived: 418 fehlende Werte. Das sind genau die Datensätze in den Testdaten. Zu diesen + +erstellen wir später Prognosen. Das ist in Ordnung. + +Age: + +263 fehlende Werte. Die Passagiere mussten beim Kauf des Tickets nicht ihr + +Geburtsdatum angeben. Jedoch mussten sie ihr Alter nennen bzw. anführen, ob + +sie zu den Erwachsenen zählen (s. Abb. 2.9). Anhand dieser Angaben berech- + +neten die Verkäufer den Ticketpreis. Vermutlich erfassten die Verkäufer diese + +Angaben nicht vollständig oder sie gingen verloren. Erst in jüngster Zeit nach + +dem Untergang wurden diese Daten dann zusammengetragen. Nach so langer + +Zeit ist es jedoch schwer, diese fehlenden Daten zu rekonstruieren. + +Fare: + +1 fehlender Wert. Reisepreis und Ticket sind normalerweise miteinander ver- + +bunden. Zumindest notierte der Verkäufer normalerweise den Preis unten auf + +16 Knight, Mr. Robert J; id: 733; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239855; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. 17 Parkes, Mr. Francis „Frank“; id: 278; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239853; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. 18 Parr, Mr. William Henry Marsh; id: 634; pclass: 1; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 112052; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. 19 Watson, Mr. Ennis Hastings; id: 675; pclass: 2; sex: male; age: ?; sibsp: 0; parch: 0; ticket: 239856; fare: 0; cabin: ?; embarked: S; survived: 0 [Kaggle]. + +60 + +2 Datenverständnis + +Abb. 2.8 Arbeiter im Trockendock der Werft von Harland & Wolff in Belfast in der Nähe der Schrauben der Olympic – aufgenommen von Robert Welch20 [8]. Die Schiffe Titanic und Olympic unterscheiden sich u. a. anhand der mittleren Schiffsschraube (Olympic: vier Flügel, Titanic: drei Flügel) +dem Papierticket (s. Abb. 2.9). Warum ein Preis fehlt, ist unklar. Vermutlich war das ein Flüchtigkeitsfehler in der Buchhaltung der Reederei White Star Line. Cabin: 1014 fehlende Werte. Warum so viele Daten nicht erfasst sind, hängt vermutlich mit den damaligen Prozessen zusammen. Die fehlenden Werte betreffen hauptsächlich Passagiere der dritten Klasse. Diese konnten keine feste Kabine im Voraus reservieren. Auf dem Ticket fehlt ein solches Feld (s. Abb. 2.9). Erst beim Boarding verteilte die Crew diese Passagiere dann auf die freien Kabinen. Aus diesem Grund gibt es auch keinerlei Dokumentation über diese Verteilung oder sie ist zusammen mit der Titanic untergegangen. Embarked: 2 fehlende Werte. Diese Information sollte ebenfalls auf dem Ticket vermerkt worden sein. Vermutlich sind das wieder Flüchtigkeitsfehler. +20 Robert John Welch, 22.07.1859 in Strabane, † 29.09.1936 in Belfast, irischer Fotograf, beauftragt von Harland & Wolff zur Dokumentation der Konstruktion der Schiffe der Olympic-Klasse. + +2.5 Es leuchtet blau + +61 + +Abb. 2.9 Template eines Dritte-Klasse-Tickets der White Star Line [9] +Abb. 2.9 zeigt die Vorlage eines Tickets für Passagiere der dritten Klasse. Oben rechts ist die Ticketnummer zu finden. Oben links gaben die Passagiere die Schlafplätze an. Zur Auswahl standen: male, female, married. Gemäß dieser Angaben konnte die Crew dann die Passagiere auf die Kabinen der dritten Klasse verteilen. Als Hafen ist in diesem Beispiel Liverpool im normalen Text gesetzt. Dies war der Heimathafen der Titanic und Sitz der Reederei White Star Line. In späteren Versionen dieser Vorlage gab es dann ein Freitextfeld für den Abfahrtshafen. In der Tabelle unten links konnte der Verkäufer die Namen, das Alter und den Status der Passagiere eintragen. Mit Status war gemeint, ob der jeweilige Passagier als Erwachsener (engl. Adult) zählte oder nicht. Auf dieser Basis berechnete der Verkäufer den Ticketpreis und schrieb ihn unter die Tabelle. Der Verkäufer kopierte diese Informationen schließlich handschriftlich auf den Beleg (rechts). +Warum gibt es generell so viele fehlende Werte? Es könnte sein, dass die verantwortlichen Kaggle-Mitarbeiter ihre Recherchen irgendwann einstellten, um die Datenqualität zu verbessern, denn dieser zeitliche Aufwand ist mit Kosten verbunden. Kaggle startete den Wettbewerb im Jahr 2012, also genau 100 Jahre nach dem Unglück. Eventuell gab es Druck, um noch rechtzeitig in diesem besonderen Jahr mit dem Wettbewerb zu starten. Andererseits + +62 + +2 Datenverständnis + +ist ein solcher Wettbewerb eine Herausforderung für angehende Data Scientists. Insofern schadet es auch nichts, wenn die Datenqualität nicht optimal ist. In der Beantwortung der Frage Nr. 11 kommen wir darauf zurück. +Frage 5: Sind die Daten präzise genug für die Analyse? Jein. Zur Beantwortung der Frage gehen wir alle Attribute durch. Wenn Datenwerte vorliegen, dann sind diese präzise. Die einzige Ausnahme bildet das Attribut Age, also das Alter. Hier kommen auch Kommazahlen vor. Bei Babys ist das normal, denn deren Alter geben wir gewöhnlich in Monaten an. Ein zwei Monate altes Baby ist 2/12 = 0,17 Jahre alt. In anderen Fällen wurde das Alter geschätzt. Ein Alter von bspw. 28,5 Jahren bedeutet jedoch nicht zwangsläufig, dass der Passagier vermutlich zwischen 28 und 29 Jahre alt war. Vielmehr bedeutet dieser Wert, dass die beste Schätzung 28 Jahre ist. Das genaue Alter ist jedoch nicht bekannt. +Sehen wir uns die Datensätze zu den Passagieren mit einem geschätzten Alter in den Trainingsdaten genauer an. Es sind 18 Datensätze. Die Schätzwerte gehen von 14,5 bis 70,5. Unter den 18 Passagieren waren 15 Männer und drei Frauen. Nur eine der Frauen überlebte, also starben 17 Passagiere. Daraus könnten wir theoretisch eine Regel ableiten. +Sophias Welt: CS Mackay-Bennett [7, 10] Das Cable Ship Mackay-Bennett war normalerweise für Reparaturarbeiten an Seekabeln im Nordatlantik zuständig. Kurz nach dem Untergang der Titanic charterte die White Star Line dieses Schiff zum Zweck der Bergung der Toten. Die Mackay-Bennett verließ Halifax am 17. April 1912 um 12:28 Uhr mittags und brauchte wegen Nebels und einer rauen See knapp vier Tage bis zur Unglücksstelle. Am 21. April 1912 ab 6 Uhr morgens begann die Bergung der Opfer. Innerhalb von sieben Tagen barg die Crew 306 Leichname und bestattete 116 davon direkt auf See. Der Gerichtsmediziner von Halifax und Dartmouth, Dr. William D. Finn, erstellte ein nummeriertes Register und beschrieb jeden Leichnam. Abb. 2.10 zeigt ein Beispiel. Leslie Williams21 konnte zwar identifiziert werden, sein Alter wurde aber nur geschätzt: 28 Jahre. In den Kaggle-Daten ist hierzu der Wert 28,5 gespeichert. Sein tatsächliches Alter war 24 Jahre. Der Boxer aus Wales war in der dritten Klasse mit dem Ticket Nr. 54636 ab Southampton gereist. Unter dieser Ticketnummer war auch David Bowen22 unterwegs, ein 20-jähriger Boxer. Die beiden wollten in den USA an einigen Boxwettkämpfen teilnehmen. Ursprünglich hatten sie geplant, mit dem Schiff Baltic zu fahren. Sie änderten jedoch ihre Pläne, um sich noch neue Maßanzüge schneidern zu lassen. Am 22.04.1912 wurde der Leichnam von Leslie Williams auf See bestattet. Die Leiche von David Bowen wurde nicht gefunden oder konnte nicht identifiziert werden. Für die Bergung des Leichnams von John Jacob Astor mit der Nr. 124 bekam die Crew übrigens eine Belohnung von 100.000 Dollar. + +21 Williams, Mr. Leslie; id: 736; pclass: 3; sex: male; age: 28,5; sibsp: 0; parch: 0; ticket: 54636; fare: 16,1; cabin: ?; embarked: S; survived: 0 [Kaggle]. 22 Bowen, Mr. David John „Dai“; id: 625; pclass: 3; sex: male; age: 21; sibsp: 0; parch: 0; ticket: 54636; fare: 16,1; cabin: ?; embarked: S; survived: 0 [Kaggle]. + +2.5 Es leuchtet blau + +63 + +Abb. 2.10 Aufzeichnung zur gefundenen Leiche Nr. 14 [11] +Die Kaggle-Daten zum geschätzten Alter der Passagiere basieren also auf dem Register der Aufzeichnungen des Bergungsschiffs Mackay-Bennett. Eine Regel wie bspw. „Wenn das Alter geschätzt ist, dann gilt Survived = 0“ zu formulieren, ist jedoch nicht sinnvoll. Denn in zukünftigen Szenarien würden wir Passagiere von Schiffsreisen bzw. potenziellen Kunden von Lebensversicherungen nach ihrem Geburtsdatum fragen. Daraus können wir das Alter exakt bestimmen. Diese Regel würden wir somit nie anwenden. Wenn ein potenzieller Kunde sein Geburtsdatum nicht angeben möchte, dann bekommt er auch kein Versicherungsangebot unterbreitet. Außerdem würde die Anwendung einer solchen Regel zu einer Verzerrung führen. Sehen wir uns hierzu ein Beispiel an. +Achtung Verzerrung (Bias) Forscher der Stanford University veröffentlichten 2017 eine Arbeit zur Erkennung von Hautkrebs mit Hilfe von Deep Learning in der Zeitschrift Nature [12]. Anhand der Aufnahmen von Hautveränderungen auf 129.450 klinischen Bildern trainierten sie einen Algorithmus, um gefährliche Melanome möglichst treffsicher zu klassifizieren. Das Problem dabei war jedoch, dass die Mediziner auf einigen Aufnahmen ein Lineal als Maßstab benutzten, um die Melanome zu vermessen. Der Algorithmus lernte die Regel „Wenn ein Lineal auf dem Bild ist, dann ist die Hautveränderung bösartig“.Damit war das ML-Modell unbrauchbar. Die Wissenschaftler um Roberto A. Novoa hätten die Daten vorher bereinigen müssen. Nach der Veröffentlichung des ersten Artikels erkannten sie diesen Bias und andere Schwierigkeiten im Umgang mit klinischen Aufnahmen. Ein Jahr später thematisierten sie diese Herausforderungen in einem Artikel des Journal of Investigative Dermatology [13]. +Wie übertragen wir dieses Wissen auf unserer Fallstudie? Wir sollten nicht zu viel in die Schätzungen des Alters hinein interpretieren. Es sind ungenaue Werte. Das müssen wir + +64 + +2 Datenverständnis + +akzeptieren. Solche Ungenauigkeiten sind vernachlässigbar, weil insgesamt sogar 263 Werte zum Alter fehlen (s. Frage Nr. 4). +Frage 6: Sind die Daten aktuell? Nein. Es sind historische Daten, die bereits über 110 Jahre alt sind. Das erste Referenzdatum ist der 18.04.1912. An diesem Tag lief das Schiff Carpathia mit 703 [14] bzw. 705 [15] Überlebenden im Hafen von New York ein. Zu diesem Zeitpunkt waren prinzipiell alle Daten zu dieser Fallstudie vorhanden. Möglicherweise war nicht alles dokumentiert. Dokumente lagen zu dieser Zeit nur in Papierform vor. Das zweite Referenzdatum ist der 28.09.2012. An diesem Datum startete der Kaggle-Wettbewerb [16]. Die Daten, die wir verarbeiten, sind also inzwischen mehr als 10 Jahre alt. Das dritte Referenzdatum ist der 02.08.1999. An diesem Tag wurden die Daten ursprünglich veröffentlicht (s. hierzu die Beantwortung der Frage Nr. 11). Damit sind die Daten sogar mehr als 20 Jahre alt. Die Referenz für Daten zur Titanic-Katastrophe ist die Webseite Encyclopedia Titanica (ET): https://www.encyclopedia-titanica.org. Sie basiert auf Citizen Science bzw. Schwarmintelligenz. Philip Hind gründete 1996 diese Initiative. Auch in den letzten 20 Jahren gab es noch viele Diskussionen und Fortschritte bei den Recherchen zu den Daten rund um die Titanic-Katastrophe [17]. Beispielsweise sind auf der Seite Informationen zu 712 Überlebenden zu finden. Möglicherweise wurden ursprünglich sechs Passagiere nicht gezählt, auf deren Schicksal wir noch eingehen (s. Abschn. 18.5). Selbst dann bleibt eine Unstimmigkeit. +Frage 7: Gibt es doppelte Datenobjekte? Nein. Wenn wir die Daten nach den Namen der Passagiere alphabetisch sortieren, dann finden wir keine Doppelungen. Allerdings gibt es alleinreisende Passagiere der dritten Klasse mit gleichen Namen (vgl. Tab. 2.2). + +Sophias Welt: Kate Connelly [7] Die beiden Frauen mit dem Namen Kate Connelly aus Tab. 2.2 kamen aus Irland und reisten ab Queenstown. Die jüngere Catherine „Kate“ Connelly aus Cortrasna wollte ihre Schwester Ellen in + +Tab. 2.2 Titanic-Daten des Kaggle-Wettbewerbs: Passagiere mit gleichen Namen + +PassengerId Name + +Age Ticket + +Fare + +Embarked + +290 + +Miss Kate 22 370373 + +7,750 + +Q + +Connelly + +898 + +Miss Kate 30 330972 + +7,629 + +Q + +Connelly + +697 + +Mr. James 44 363592 + +8,050 + +S + +Kelly + +892 + +Mr. James 34,5 330911 + +7,829 + +Q + +Kelly + +Survived 1 ? 0 ? + +2.5 Es leuchtet blau + +65 + +New York besuchen. Ihre ältere Namenscousine aus Tipperary war ebenfalls auf dem Weg in den Staat New York, wo sie hoffte in Dobbs Derry eine Arbeit zu finden, um der Familie damit zu helfen. Ihre Schwester Maggie war an Tuberkulose erkrankt. Allerdings überlebte nur die jüngere Kate. Die identischen Namen der beiden Irinnen sorgten für Verwirrungen. Zunächst wurden die beiden verwechselt. Dadurch durchlebten die Angehörigen ein Wechselbad der Gefühle. Kates Familie aus Tipperary bekam schließlich 40 Pfund von einem Hilfskomitee in England als finanzielle Hilfe. Das amerikanische Rote Kreuz unterstützte sie mit einem Betrag im Gegenwert des Reisepreises. Das Alter der Frauen in den Kaggle-Daten ist nicht korrekt. Die überlebende Kate war 23 und nicht 22 Jahre alt. Die verstorbene Miss Connelly aus Tipperary war dagegen 41 statt 30 Jahre alt. +Frage 8: Sind die Daten sinnvoll im Hinblick auf das Erreichen der Datenziele? Gute Frage! Wir benötigen die PassengerId, um Passagiere eindeutig zu identifizieren. Dieses Attribut ist also wichtig für die Prognose zu den 418 Passagieren der Testdaten. Für das Training ist dieses Attribut aber irrelevant. Inwiefern die anderen Attribute hilfreich sind, können wir noch nicht mit Sicherheit sagen. Auf den ersten Blick scheint die Ticketnummer keine große Relevanz zu haben. Ansonsten betrachten wir die Ergebnisse der Korrelationsanalyse. In dieser analysieren wir allerdings nur numerische Attribute. Beispielsweise verwenden wir nicht das Attribut Sex, weil es ein String ist. Wir betrachten auch nur paarweise lineare Korrelationen und sehen uns dabei insb. Korrelationen zum Zielattribut Survived an. Den stärksten Zusammenhang zeigt Pclass. Der Korrelationskoeffizient beträgt −0,338 und ist negativ. Passagiere der ersten Klasse haben also eine höhere Überlebenswahrscheinlichkeit als die der zweiten oder dritten Klasse. Die zweithöchste Korrelation zeigt die Paarung Fare und Survived. Der Korrelationskoeffizient beträgt +0,257. Mit steigendem Reisepreis steigt auch die Überlebenswahrscheinlichkeit. Die Korrelationskoeffizienten sind aber weit von +1 bzw. −1 entfernt. Die Zusammenhänge sind also schwach. +Frage 9: Gibt es fehlerhafte Daten? Gibt es Ausreißer? Ja, beides. Mit Hilfe von Streudiagrammen und Box-Plots visualisieren wir die Daten und suchen nach Ausreißern. Diese müssen aber keine Fehler in den Daten sein. Sehen wir uns zunächst die Streudiagramme für die Trainingsdaten an. In Abb. 2.11 erkennen wir im linken oberen Diagramm, dass die Reisepreise (Attribut Fare) in der ersten Klasse sehr viel höher waren als die in den anderen Klassen (Attribut Pclass). Es gab auch mind. einen Reisepreis größer als 500 Pfund. Das ist ein Ausreißer. Aber ist dieser Wert auch ein Fehler? Im Streudiagramm rechts oben sind die Reisepreise gegenüber dem Alter (Attribut Age) aufgetragen. Im Streudiagramm direkt darunter ist die Passagierklasse gegenüber dem Alter aufgetragen. Mit steigendem Alter verschiebt sich die Reise zugunsten einer besseren Klasse. Es gab auch Passagiere, die mit acht Geschwistern/Partnern (Attribut SibSp) gereist sind oder die sechs Eltern/Kinder (Attribut Parch) dabei hatten (s. Streudiagramm unten links). Abb. 2.12 zeigt zwei spezielle Streudiagramme zum Alter gegenüber dem Geschlecht, einen Strip-Plot (oben) und einen Swarm-Plot (unten). Wir erkennen anhand dieser Diagramme, dass mehr männliche als weibliche Passagiere (Attribut Sex) auf der Titanic waren. Bei den Männern + +66 + +2 Datenverständnis + +Abb. 2.11 Streudiagramme zu Pclass vs. Fare (links oben), Age vs. Fare (rechts oben), SibSp vs. Parch (links unten) und Age vs. Pclass (rechts unten) – erstellt mit dem Seaborn-Paket +gab es ältere Passagiere (Attribut Age) als bei den Frauen. Der älteste Mann war 80 Jahre, die älteste Frau war über 60 Jahre. Bei einem Alter von knapp 30 Jahren liegen zwei ausgeprägte Häufungspunkte im Swarm-Plot. Diese Häufungspunkte erkennen wir deutlicher, wenn wir nur die Trainingsdaten wie in diesem Beispiel betrachten. Sind das Ausreißer oder Fehler? Nein! Damit wir diese Diagramme erstellen konnten, mussten wir die fehlenden 177 Werte des Attributs Age in den Trainingsdaten zunächst behandeln. Wir ersetzten die fehlenden Werte durch den Mittelwert des Alters aller Passagiere der Trainingsdaten, also durch den Wert 29,7. Abb. 2.13 zeigt, wie sich die Altersverteilung ändert, wenn wir diese Ersetzung vornehmen. Diese speziellen Histogramme zeigen zusätzlich eine stetige Verteilungsfunktion (engl. Distribution Function). Bei der Erstellung der Box-Plots können wir angeben, ob wir Ausreißer darstellen möchten oder nicht. Abb. 2.14 und 2.15 zeigen BoxPlots zu den Attributen Fare und Age. Links sind jeweils die Box-Plots mit Ausreißer und rechts die ohne Ausreißer darstellt. Wir führten diese Analyse jeweils für drei Datenmengen durch. Zunächst betrachteten wir die Trainings- und Testdaten separat, danach führten wir sie zusammen. Zwischen den Trainings- und Testdaten zeigen sich keine nennenswerten Abweichungen in den Verteilungen zu diesen Attributen. Die Ausreißer zum Attribut Fare sind jedoch extrem im Vergleich zu den Ausreißern des Attributs Age. +Als Ergebnisse halten wir u. a. fest: Die Hälfte der Passagiere zahlten einen Ticketpreis zwischen ca. 8 und 31 Pfund, der Median beträgt ca. 14,5 Pfund. Von den Passagieren + +2.5 Es leuchtet blau + +67 + +Abb. 2.12 Strip-Plot (oben) und Swarm-Plot (unten) zu Sex vs. Age – erstellt mit dem Seaborn-Paket + +waren 50 % zwischen 20 und 38 Jahre alt, der Median ist 28 Jahre. In den Box-Plots zum Attribut Fare liegt der Median relativ weit unten, auch dann, wenn wir keine Ausreißer berücksichtigen. Das weist bereits auf eine rechtsschiefe Verteilung der Werte hin. Abb. 2.16 zeigt das Histogramm zu den Ticketpreisen, überlagert von einer Dichteverteilung. Die rechtsschiefe Verteilung hat einen langen Schwanz (engl. Tail), der die Ausreißer enthält. Mit Hilfe des statistischen Maßes Skewness bestimmen wir die Schiefe einer Verteilung. Eine symmetrische Verteilung hat eine Skewness von null. Eine linksschiefe Verteilung hat eine negative und eine rechtsschiefe Verteilung eine positive Skewness. Je größer dieser Wert, desto stärker die Schiefe. Der KNIME-Knoten Statistics zeigt u. a. diese Werte (s. Abb. 2.17). Für das Attribut Fare bekommen wir eine Skewness von 4,368 – also einen vergleichsweise hohen Wert. Nun sehen wir uns die Daten etwas genauer an. Mit Hilfe einer Ausreißeranalyse suchten wir nach Ausreißern der Attribute Fare, Age und SibSp. Die folgenden Ergebnisse fanden wir heraus. + +68 +Abb. 2.13 Histogramme zum Attribut Age vor (oben) und nach (unten) der Behandlung fehlender Werte – erstellt mit dem Seaborn-Paket + +2 Datenverständnis + +Abb. 2.14 Box-Plots zum Attribut Fare – erstellt mit dem Matplotlib-Paket + +2.5 Es leuchtet blau + +69 + +Abb. 2.15 Box-Plots zum Attribut Age – erstellt mit dem Matplotlib-Paket +Abb. 2.16 Histogramm zum Attribut Fare – erstellt mit dem Seaborn-Paket + +Abb.2.17 Ergebnis des KNIME-Knotens Statistics. Hervorgehoben ist die Skewness, die Schiefe der Verteilungen + +70 + +2 Datenverständnis + +Fare: 20 Passagiere zahlten einen Ticketpreis von mehr als 240 Pfund. Insbesondere Familie Cardeza stach dabei heraus. Für 17 Passagiere war die Überfahrt frei. +Age: 9 Passagiere waren 67 Jahre oder älter. SibSp: Die Großfamilien Sage und Goodwin fielen auf. +Sophias Welt: Familie Cardeza [2, 7] Charlotte Cardeza23 trat mit ihrem Sohn Thomas24 die Reise mit der Titanic an. Begleitet wurden die beiden von Annie Moore Ward25, dem Dienstmädchen von Mrs. Cardeza, und von Gustave Lesueur26, dem Butler von Thomas. Der Gesamtpreis für das Ticket mit der Nummer PC 17755 betrug ca. 512 Pfund. In der heutigen Zeit wäre das ein Betrag von etwa 80.000 Euro, also ein kleines Vermögen für eine Atlantik-Überfahrt. Mutter und Sohn belegten die Kabinen B51, B53 und B55. Diese waren besonders luxuriös und hatten sogar ein eigenes, wettergeschütztes Promenadendeck von 15 Metern Länge. Auf dem etwas älteren, aber ansonsten fast baugleichen, Schwesterschiff Olympic gab es diese Luxus-Suiten noch nicht. Im Titanic-Film von James Cameron wurden diese Kabinen von Rose DeWitt Bukater und ihrem Verlobten belegt. Auf der gegenüberliegenden Seite der Titanic lagen identische Luxus-Kabinen mit den Nummern B52, B54 und B56. Hier war der Geschäftsführer der White Star Line untergebracht: Joseph Bruce Ismay27. Als Präsident der Reederei reiste er gratis. Diese fünf Erste-Klasse-Passagiere überlebten den Untergang. +Wenn wir uns die Trainingsdaten zu diesen Luxus-Kabinen genauer ansehen, dann stellen wir fest, dass die Kabinen B51, B53 und B55 auch dem Passagier Frans Olof Carlsson28 zugeordnet wurden. Er reiste laut Kaggle allein ab Southampton in der ersten Klasse mit einem 5-Pfund-Ticket zur Nummer 695 und überlebte nicht. Das ist ein Widerspruch, weil diese Kabinen bereits durch die Familie Cardeza belegt waren. Den nächst höheren Ticketpreis nach Familie Cardeza zahlte übrigens die sechsköpfige Familie Fortune, nämlich 263 Pfund. Der englischen Begriff fortune bedeutet u. a. Reichtum bzw. Vermögen. +Von den neun ältesten Passagieren gehören zwei Datenobjekte zu den Testdaten. Von den anderen sieben überlebte nur einer: Algernon Barkworth, 80 Jahre. Er war laut den Kaggle- + +23 Cardeza, Mrs. James Warburton Martinez (Charlotte Wardle Drake); id: 1235; pclass: 1; sex: female; age: 58; sibsp: 0; parch: 1; ticket: PC 17755; fare: 512,329; cabin: B51 B53 B55; embarked: C; survived: ? [Kaggle]. 24 Cardeza, Mr. Thomas Drake Martinez; id: 680; pclass: 1; sex: male; age: 36; sibsp: 0; parch: 1; ticket: PC 17755; fare: 512,329; cabin: B51 B53 B55; embarked: C; survived: 1 [Kaggle]. 25 Ward, Miss. Anna; id: 259; pclass: 1; sex: female; age: 35; sibsp: 0; parch: 0; ticket: PC 17755; fare: 512,329; cabin: ?; embarked: C; survived: 1 [Kaggle]. 26 Lesueur, Mr. Gustave J; id: 738; pclass: 1; sex: male; age: 35; sibsp: 0; parch: 0; ticket: PC 17755; fare: 512,329; cabin: B101; embarked: C; survived: 1 [Kaggle]. 27 Ismay, Mr. Joseph Bruce; id: 1264; pclass: 1; sex: male; age: 49; sibsp: 0; parch: 0; ticket: 112058; fare: 0; cabin: B52 B54 B56; embarked: S; survived: ? [Kaggle]. 28 Carlsson, Mr. Frans Olof; id: 873; pclass: 1; sex: male; age: 33; sibsp: 0; parch: 0; ticket: 695; fare: 5; cabin: B51 B53 B55; embarked: S; survived: 0 [Kaggle]. + +2.5 Es leuchtet blau + +71 + +Daten der älteste Passagier der Titanic. Die älteste Frau war Julia Florence Cavendish, 76 Jahre. Allerdings nur in den Kaggle-Daten. +Sophias Welt: Die ältesten Passagiere der Titanic [7] Der älteste Passagier der Titanic war mit 74 Jahren der Farmer Johan Svensson29 aus Jönköping, Schweden. Seine Frau Brita war am 2. Februar 1912 gestorben, also gut zwei Monate vor der Jungfernfahrt der Titanic. Sein Sohn Johan Ekström30 war bereits im Jahr 1890 nach Nordamerika ausgewandert. Er lebte seit 1900 auf einer Farm in South Dakota, zusammen mit seiner Frau Annie, ihren sechs Kindern (zwei bis 18 Jahre) und der 80-jährigen Schwiegermutter. Nach dem Tod seiner Mutter wollte er seinen Vater aus Schweden zu sich und seiner Familie nach South Dakota holen. Beide Männer kamen jedoch bei dem Unglück ums Leben. Die Farm war noch mit einer Hypothek von 3600 Dollar belastet. Außerdem hatte Johan Ekström 400 Dollar Schulden bei der Bank. Er nahm u. a. Geld auf, um die Reise nach Schweden und zurück zu finanzieren. Johan Ekström hatte die Hypothekenzinsen immer pünktlich gezahlt. Er war bis zu diesem Zeitpunkt nie in Verzug gekommen. Nun drohte der Familie auch eine finanzielle Katastrophe. Das Rote Kreuz sowie der Titanic Relief Fund halfen schließlich aus und beglichen sämtliche Schulden. +Die älteste Frau auf der Titanic war mit 64 Jahren die Witwe Mary Eliza Compton31. Sie war in der ersten Klasse mit ihren beiden Kindern Alexander Taylor32 und Sara Rebecca33 unterwegs. Mit dem Rettungsboot Nr. 14 wurden die beiden Frauen in Sicherheit gebracht. Alexander überlebte die Katastrophe nicht. +Algernon Barkworth34 ist 1945 im Alter von 80 Jahren verstorben. Auf der Titanic war er dagegen erst 47 Jahre alt. Julia Florence Cavendish35 starb 1963 im Alter von 76 Jahren. Auf der Titanic war sie demnach erst 25 Jahre alt. Diese nach Kaggle vermeintlich ältesten männlichen und weiblichen Passagiere überlebten das Schiffsunglück. In den Kaggle-Daten ist jedoch deren Sterbealter vermerkt und nicht das tatsächliche Alter im Jahr 1912. +Zur Familie Sage gehörten insgesamt elf Personen. Sie reisten dritter Klasse unter dem Ticket mit der Nummer CA. 2343 zum Preis von 69,55 Pfund ab Southampton. Nur das Alter von Master William Henry Sage ist mit 14,5 Jahren angegeben, wenn auch nur geschätzt. Vier der Familienmitglieder sind den Testdaten zugeordnet. Die sieben Personen der Trainingsdaten + +29 Svensson, Mr. Johan; id: 852; pclass: 3; sex: male; age: 74; sibsp: 0; parch: 0; ticket: 347060; fare: 7,775; cabin: ?; embarked: S; survived: 0 [Kaggle]. 30 Ekstrom, Mr. Johan; id: 130; pclass: 3; sex: male; age: 45; sibsp: 0; parch: 0; ticket: 347061; fare: 6,975; cabin: ?; embarked: S; survived: 0 [Kaggle]. 31 Compton, Mrs. Alexander Taylor (Mary Eliza Ingersoll); id: 1071; pclass: 1; sex: female; age: 64; sibsp: 0; parch: 2; ticket: PC 17756; fare: 83,158; cabin: E45; embarked: C; survived: 1 [Kaggle]. 32 Compton, Mr. Alexander Taylor Jr; id: 1073; pclass: 1; sex: male; age: 37; sibsp: 1; parch: 1; ticket: PC 17756; fare: 83,158; cabin: E52; embarked: C; survived: ? [Kaggle]. 33 Compton, Miss. Sara Rebecca; id: 836; pclass: 1; sex: female; age: 39; sibsp: 1; parch: 1; ticket: PC 17756; fare: 83,158; cabin: E49; embarked: C; survived: 1 [Kaggle]. 34 Barkworth, Mr. Algernon Henry Wilson; id: 631; pclass: 1; sex: male; age: 80; sibsp: 0; parch: 0; ticket: 27042; fare: 30; cabin: A23; embarked: S; survived: 1 [Kaggle]. 35 Cavendish, Mrs. Tyrell William (Julia Florence Siegel); id: 988; pclass: 1; sex: female; age: 76; sibsp: 1; parch: 0; ticket: PC 19877; fare: 78,85; cabin: C46; embarked: S; survived: ? [Kaggle]. + +72 + +2 Datenverständnis + +überlebten nicht. Es ist also anzunehmen, dass die anderen vier auch nicht überlebten. Sehr ähnlich sieht es bei der zweitgrößten Familie aus. +Sophias Welt: Familie Goodwin und das unbekannte Kind [7, 18, 19] Familie Goodwin wollte in den USA ein neues Leben beginnen. Die Goodwins bestanden aus acht Personen. Augusta Goodwin36, 43 Jahre, reiste zusammen mit ihrem Mann, Frederick Joseph37, 42 Jahre, und ihren sechs Kindern: +• Lillian Augusta38, 16 Jahre, • Charles Edward39, 14 Jahre, • William Frederick40, 13 Jahre, • Jessie Allis Mary41, 12 Jahre, • Harold Victor42, 10 Jahre, • Sidney Leslie43, 1 Jahr und 7 Monate. +Der Bruder von Frederick Goodwin war bereits in den Bundesstaat New York ausgewandert. Er lebte in Niagara Falls, wo zu dieser Zeit in der Nähe ein neues Kraftwerk gebaut und nach Arbeitskräften gesucht wurde. Die Goodwins verkauften ihr Haus in Fulham und machten sich auf den Weg. Sie reisten dritter Klasse ab Southampton. Frederick und seine beiden Söhne waren im Bug des Schiffes untergebracht. Augusta, die Mädchen sowie der kleine Sidney hatten dagegen im Heckbereich ihre Kabine. Bei der Evakuierung der Titanic waren bereits alle Rettungsboote zu Wasser gelassen worden, bevor sich die Goodwins zusammengefunden hatten. Das Bergungsschiff Mackay-Bennett fand früh am Morgen des 21. April 1912 die Leiche eines kleinen Jungen. Die Registerkarte bekam die Nr. 4. Die Crew konnte den Jungen nicht identifizieren. Er wurde am 4. Mai 1912 auf dem Friedhof Fairview Lawn in Halifax beigesetzt. Der Grabstein trug den Namen Unknown child. Die Identität des Kindes konnte viele Jahre nicht zweifelsfrei geklärt werden. Die erste Vermutung war Gösta Leonard Pålsson, ein zweijähriger Junge aus Schweden. Im Jahr 2001 starteten der Marinegeologe Alan Ruffman aus Halifax und der Anthropologe Ryan L. Parr von der Universität Lakehead in Ontario ein Projekt zur Identifikation, welches sie viele Jahre beschäftigen sollte. Im Mai 2001 wurde zunächst die Leiche des unbekannten Kindes exhumiert. Die Wissenschaftler konnten DNA +36 Goodwin, Mrs. Frederick (Augusta Tyler); id: 679; pclass: 3; sex: female; age: 43; sibsp: 1; parch: 6; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. 37 Goodwin, Mr. Charles Frederick; id: 1031; pclass: 3; sex: male; age: 40; sibsp: 1; parch: 6; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: ? [Kaggle]. 38 Goodwin, Miss. Lillian Amy; id: 72; pclass: 3; sex: female; age: 16; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. 39 Goodwin, Mr. Charles Edward; id: 684; pclass: 3; sex: male; age: 14; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. 40 Goodwin, Master. William Frederick; id: 60; pclass: 3; sex: male; age: 11; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. 41 Goodwin, Miss. Jessie Allis; id: 1032; pclass: 3; sex: female; age: 10; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: ? [Kaggle]. 42 Goodwin, Master. Harold Victor; id: 481; pclass: 3; sex: male; age: 9; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. 43 Goodwin, Master. Sidney Leonard; id: 387; pclass: 3; sex: male; age: 1; sibsp: 5; parch: 2; ticket: CA 2144; fare: 46,9; cabin: ?; embarked: S; survived: 0 [Kaggle]. + +2.5 Es leuchtet blau + +73 + +aus einem Knochenfragment und drei Zähnen extrahieren. Die ersten DNA-Untersuchungen ergaben im November 2002 einen neuen Treffer: Eino Viljami Panula, 1 Jahr und 1 Monat, aus Finnland. Allerdings war zu diesem Zeitpunkt die DNA-Analyse noch nicht vollständig abgeschlossen. Im Februar 2003 betrug die Wahrscheinlichkeit nur noch 50 % für diesen Treffer. Erst im Juli 2008 stellte sich heraus, dass es sich bei dem unbekannten Kind um Sidney Leslie Goodwin handelt. Hierbei halfen verbesserte DNA-Analysen sowie ein Paar Schuhe. Normalerweise wurden die Habseligkeiten der geborgenen Opfer den Verwandten geschickt, ansonsten verbrannt. Der zuständige Polizist verschonte die kleinen Schuhe von Leichnam Nr. 4. Im Jahr 2002 stifteten die Enkel des Polizisten dieses Artefakt dem Maritime Museum of Atlantic in Halifax. Für ein 13 Monate altes Kind waren diese Schuhe jedoch viel zu groß. Am 5. April 2010 veröffentlichten die beiden Wissenschaftler sowie Kollegen einen abschließenden Artikel in der Zeitschrift Forensic Science International: Genetics. Damit war die Suche nach dem unbekannten Kind beendet. +Zusammenfassend halten wir fest, dass es einige Ausreißer gibt. Die Titanic war ein extrem luxuriöses Schiff. Das war ihr Alleinstellungsmerkmal. Deshalb zahlten einige Passagiere auch exorbitante Preise für diesen Luxus. In der damaligen Zeit waren große Familien auch völlig normal. Ungewöhnlich dagegen waren Passagiere mit einem Alter über 66 Jahren. Diese Passagiere sind also vor dem Jahr 1846 geboren. Die Lebenserwartung betrug im Vereinigten Königreich im Jahr 1846 nur 40,1 Jahre und im Jahr 1912 immerhin schon 54,3 Jahre [20]. Das sind jedoch nur Mittelwerte, es gibt Streuungen. Auch wenn die Ausreißer zum Alter unwahrscheinlich wirken, akzeptieren wir diese in den Daten. Wir müssen die Ausreißer nicht eliminieren. Mit Hilfe des Hintergrundwissens von Sophia ist weiterhin aufgefallen, dass es fehlerhafte Werte zum Alter gibt. Hinzu kommen viele fehlende Werte und einige ungenaue Schätzwerte. Age ist also ein problembehaftetes Attribut. +Frage 10: Sind die Daten widerspruchsfrei und plausibel? Wie wir bereits bei der Beantwortung der letzten Frage feststellten, sind nicht alle Daten konsistent. Der Passagier Frans Olof Carlsson ist nicht für fünf Pfund in den luxuriösesten drei Kabinen der Titanic gereist. Auch die Anzahl der Überlebenden (Werte zwischen 705 und 712) ist nicht einheitlich. Ansonsten konnten wir aber keine offensichtlichen Widersprüche feststellen. Somit wirken die Daten insgesamt trotzdem plausibel. +Frage 11: Sind die Daten und deren Herkunftsquellen vertrauenswürdig? Jein. Die Data-Science-Plattform Kaggle stellt die Daten zur Verfügung. Das ist eine internationale Plattform, auf der viele Daten und Wettbewerbe gehostet sind. Der TitanicWettbewerb läuft bereits seit mehr als 10 Jahren. Insofern halten wir die Daten grundsätzlich für vertrauenswürdig. Es sind jedenfalls keine sog. Fake-Daten oder fiktive, künstliche Daten. Schauen wir uns die Herkunft der Daten nun genauer an. Der Titanic-Wettbewerb der Kaggle-Plattform ist am 28.09.2012 gestartet [16]. Die verantwortlichen Data Scientists bzw. Produktmanager Jessica Li und Will Cukierski erstellten die Daten jedoch nicht selbst. Diese stammen von Thomas E. Cason von der Vanderbilt School of Medicine. Aber auch er verwendete andere Quellen. Die erste umfangreiche Liste mit Passagieren der Titanic stellte 1994 Michael A. Finlay zusammen. Die Attribute waren: Name, Residence, Age, Class, + +74 + +2 Datenverständnis + +Embarked, Boat. Vier dieser Attribute sind noch in den aktuellen Daten enthalten: Name, Age, Class als Pclass und Embarked. Die beiden anderen Attribute bezeichnen den Wohnort des Passagiers und die Nummer des Rettungsbootes im Falle der Rettung. John P. Eaton und Charles A. Haas veröffentlichten die Liste von Michael A. Finlay 1995 im Anhang VI (S. 337 bis 349) der zweiten Auflage ihres Buches Titanic – Triumph and Tragedy [21]. Ein Jahr später startete Philip Hind die Encyclopedia Titanica (ET) mit genau dieser Passagierliste [17]. Dieses Webprojekt existiert bis heute. Viele Freiwillige rekonstruieren fortlaufend die Geschichte der Titanic und damit die Passagierliste. Ebenfalls im Jahr 1996 gründete Frank E. Harrell Jr., Professor für Biostatistik an der Vanderbilt Universität von Virginia, den Fachbereich Biostatistik und Epidemiologie [22]. Der Student Thomas E. Cason arbeitete dort 1999 als wissenschaftliche Hilfskraft. Seine Aufgabe bestand darin, einen aktualisierten Titanic-Datensatz zu erstellen. Hierzu benutzte er die Webseite Encyclopedia Titanica. Das Ergebnis, die Datei titanic3.csv, veröffentlichte er am 02.08.1999 [23]. Sie besteht aus 1309 Datensätzen. Die Passagiere sind alphabetisch nach Namen sortiert. Die Attribute sind: pclass, survived, name, sex, age, sibsp, parch, ticket, fare, cabin, embarked, boat, body, home.dest [24]. Ein Vorteil von Webseiten ist die Verlinkung der Seiten untereinander. Dadurch lassen sich die Beziehungen der Passagiere zueinander abbilden. Thomas E. Cason investierte viel Zeit, um die verwandtschaftlichen Beziehungen in die neuen Features sibsp und parch abzubilden. Die wissenschaftliche Disziplin Epidemiologie beschäftigt sich u. a. mit der Untersuchung der Verbreitung von Epidemien, also Volkskrankheiten, in Bevölkerungen bzw. Populationen. Deshalb können wir vermuten, dass Cason diese beiden neuen Attribute vor diesem Hintergrund entwickelte. Neben verwandtschaftlichen Beziehungen stehen die beiden Attribute auch für unterschiedliche Generationen einer Population. Thomas E. Cason führte bereits erste Analysen durch und stellte einen Dritte-Klasse-Bias fest. Viele Passagiere der dritten Klasse reisten allein oder mit Freunden. Einige wurden vielleicht von ihren Familien vorgeschickt, um die Auswanderung in die USA vorzubereiten. Die beiden neuen Attribute bilden damit nur den Status auf der Titanic und nicht im realen Leben ab. Ihm war auch bewusst, dass zu 20 % der Passagiere kein Alter angegeben war, und wenn doch, dieses manchmal nur als Schätzung vorlag. Der Zweck der Zusammenstellung seiner Daten bestand darin, diese in der Lehre und zu Schulungszwecken einzusetzen [25]. Die Data Scientists von Kaggle benutzten 13 Jahre später die Datei titanic3.csv als Basis für den Titanic-Wettbewerb. Die Daten der 1309 Passagiere stimmen fast exakt überein, es gibt nur 22 geringfügige Änderungen in den Rufnamen der Passagiere, die auf Fehler beim Übertragen der Anführungszeichen zurückzuführen sind. Weiterhin eliminierten die Kaggle-Mitarbeiter die drei letzten Attribute, was sinnvoll war. Das Attribut boat gibt nämlich an, in welchem Rettungsboot sich der Passagier befand, wenn er überlebte. Außerdem enthält das Attribut body die Nummer der von der Mackay-Bennett geborgenen Leiche, falls die Crew sie identifizieren konnte. Das Attribut home.dest gibt den Heimatort und/oder den Zielort des Passagiers an. Schließlich teilten die Data Scientists von Kaggle die 1309 Daten in 891 Trainingsdaten und 418 Testdaten auf. Damit wissen wir nun sicher, dass die Kaggle-Mitarbeiter keine Aktivitäten zur Verbesserung der Datenqualität unternommen + +2.5 Es leuchtet blau + +75 + +haben. Mittlerweile gibt es im Fachbereich für Biostatistik der Universität von Virginia eine aktualisierte Version. Die Datei titanic5.csv stammt aus dem Jahr 2016 und enthält sehr viele Verbesserungen [24]. +Frage 12: Welche Datentypen haben die Attribute? Siehe Tab. 2.1. + +Frage 13: Welche Skalenniveaus haben die Attribute? Siehe Tab. 2.1. +Frage 14: Wie sind die Attributwerte verteilt? Interessant ist zunächst die Verteilung des Klassenattributs Survived. Das Ergebnis der Klassenverteilung der 891 Trainingsdatensätze ist: +Survived = 0: 549 Datensätze (61,62 %) Survived = 1: 342 Datensätze (38,38 %) +Wir haben also keine Gleichverteilung (50:50) zwischen den Klassen. Andererseits ist diese Verteilung auch nicht extrem ungleich (ca. 60:40). Um Frage 9 zu beantworten, betrachteten wir bereits Verteilungen der beschreibenden Attribute. Mit Hilfe des Knotens Interactive Histogram konnten wir in KNIME Analytics einige Analysen durchführen. Hierzu stellen wir als Aggregation column das Attribut Survived ein und wählen als Aggregation method die Methode Average aus. Mit dieser Konfiguration zeigt das Histogramm dann die Überlebenswahrscheinlichkeiten zu den einzelnen Säulen an. Diese Analyse führen wir nur für die 891 Trainigsdaten durch, denn nur hier ist das Attribut Survived gegeben. Wenn wir stattdessen als Aggregation method die Methode Row count einstellen, dann bekommen wir die absoluten Häufigkeiten angezeigt. Mit Anaconda/Python konstruieren wir ähnliche Diagramme. Hierzu benutzen wir das Matplotlib- oder das Seaborn-Paket. Die Abb. 2.18, 2.19, 2.20, 2.21, 2.22, 2.23 und 2.24 zeigen Balkendiagramme zu den betrachteten Attributen. Im jeweils linken Diagramm sind die Überlebenswahrscheinlichkeiten dargestellt. Das rechte Diagramm zeigt die absoluten Häufigkeiten zu den Balken bzw. Bins. +Attribut Pclass Passagiere der ersten Klasse hatten eine deutlich höhere Überlebenswahrscheinlichkeit (63 %) als Passagiere der zweiten (47 %) und dritten (24 %) Klasse. Andererseits waren sie in der Minderheit. + +Attribut Sex Weibliche Passagiere hatten eine sehr viel höhere Überlebenswahrscheinlichkeit (74 %) als männliche Passagiere (19 %). Auch sie waren in der Minderheit. + +76 + +2 Datenverständnis + +Abb. 2.18 Balkendiagramme zum Attribut Pclass: Überlebenswahrscheinlichkeiten (links) und absolute Häufigkeiten (rechts) – erstellt mit dem Seaborn-Paket +Abb. 2.19 Balkendiagramme zum Attribut Sex: Überlebenswahrscheinlichkeiten (links) und absolute Häufigkeiten (rechts) – erstellt mit dem Seaborn-Paket + +Abb. 2.20 Balkendiagramme zum Attribut Age: Überlebenswahrscheinlichkeiten (links) und absolute Häufigkeiten (rechts) – erstellt mit dem Seaborn-Paket +Attribut Age Um ein Balkendiagramm zum Alter zu erzeugen, benutzen wir Binning mit 8 Bins, die jeweils eine Spanne von 10 Jahren abdecken. Kinder bis 10 Jahre hatten eine höhere Überlebenswahrscheinlichkeit (59 %) als alle anderen Passagiere. + diff --git a/storage/DMHAM693/.zotero-ft-info b/storage/DMHAM693/.zotero-ft-info new file mode 100644 index 0000000..888686f --- /dev/null +++ b/storage/DMHAM693/.zotero-ft-info @@ -0,0 +1,11 @@ +Producer: iText 5.5.13.2 2000-2020 iText Group NV (AGPL-version); modified using iText 7.1.14 2000-2020 iText Group NV (AGPL-version) +CreationDate: 11/28/24 18:58:28 +ModDate: 11/29/24 06:36:24 +Tagged: no +Form: none +Pages: 595 +Encrypted: no +Page size: 476.22 x 680.315 pts (rotated 0 degrees) +File size: 12161243 bytes +Optimized: yes +PDF version: 1.4 diff --git a/styles/harvard-cite-them-right.csl b/styles/harvard-cite-them-right.csl index 5053b32..ea5c82a 100644 --- a/styles/harvard-cite-them-right.csl +++ b/styles/harvard-cite-them-right.csl @@ -12,7 +12,7 @@ Harvard according to Cite Them Right, 11th edition. - 2025-08-26T05:39:18+00:00 + 2025-10-29T11:57:22+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -67,7 +67,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/styles/modern-language-association.csl b/styles/modern-language-association.csl index ed13f52..dbc8612 100644 --- a/styles/modern-language-association.csl +++ b/styles/modern-language-association.csl @@ -23,7 +23,7 @@ MLA source citations, in-text citations system (chapter 6) - 2025-08-27T19:32:57+00:00 + 2025-10-31T16:04:52+00:00 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License @@ -83,9 +83,7 @@ 4.6. Publication Date (MLA 5.68-83) 4.7. Location (MLA 5.84-99) 5. Supplemental Element Between Containers (MLA 5.119) - 6. Container 2 - 6.1. Title of Container (MLA 5.31-37) - 6.2. Location (MLA 5.84-99) + 6. Container 2 (MLA 5.102) 7. Supplemental Element at End of Entry (MLA 5.110-118) 7.1. Date of access (MLA 5.111) 7.2. Medium of publication (MLA 5.112) @@ -249,12 +247,9 @@ - - - - + - + @@ -271,12 +266,9 @@ - - - - + - + @@ -491,7 +483,7 @@ - + @@ -861,7 +853,10 @@ - + + + + @@ -872,15 +867,74 @@ + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -889,84 +943,19 @@ - + - - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/translators/EUR-Lex.js b/translators/EUR-Lex.js index 957166b..9b768d7 100644 --- a/translators/EUR-Lex.js +++ b/translators/EUR-Lex.js @@ -1,21 +1,21 @@ { "translatorID": "bf053edc-a8c3-458c-93db-6d04ead2e636", + "translatorType": 4, "label": "EUR-Lex", "creator": "Philipp Zumstein, Pieter van der Wees", - "target": "^https?://(www\\.)?eur-lex\\.europa\\.eu/(legal-content/[A-Z][A-Z]/(TXT|ALL)/|search\\.html\\?)", + "target": "^https://eur-lex\\.europa\\.eu/", "minVersion": "3.0", - "maxVersion": "", + "maxVersion": null, "priority": 100, "inRepository": true, - "translatorType": 4, "browserSupport": "gcsibv", - "lastUpdated": "2021-12-31 02:00:49" + "lastUpdated": "2025-10-30 15:55:00" } /* ***** BEGIN LICENSE BLOCK ***** - Copyright © 2017-2021 Philipp Zumstein, Pieter van der Wees + Copyright © 2025 Abe Jellinek This file is part of Zotero. @@ -161,19 +161,14 @@ function scrape(doc, url) { var type = detectWeb(doc, url); var item = new Zotero.Item(type); // determine the language in which we are currently viewing the document - var languageUrl = url.split("/")[4].toUpperCase(); - if (languageUrl == "AUTO") { - languageUrl = autoLanguage || "EN"; - } - var language = languageMapping[languageUrl].iso || "eng"; + var viewingLanguage = (doc.documentElement.lang || "en").toUpperCase(); // Cases only return language; discard everything else - item.language = languageUrl.toLowerCase(); - + item.language = viewingLanguage.toLowerCase(); if (eliTypeUri) { // type: everything with ELI (see var typeMapping: bill, statute, report) - item.title = attr(doc, 'meta[property="eli:title"][lang=' + languageUrl.toLowerCase() + "]", "content"); - var uri = attr(doc, "#format_language_table_digital_sign_act_" + languageUrl.toUpperCase(), "href"); + item.title = attr(doc, 'meta[property="eli:title"][lang=' + viewingLanguage.toLowerCase() + "]", "content"); + var uri = attr(doc, "#format_language_table_digital_sign_act_" + viewingLanguage.toUpperCase(), "href"); if (uri) { var uriParts = uri.split("/").pop().replace("?uri=", "") .split(":"); @@ -207,7 +202,7 @@ function scrape(doc, url) { } item.legislativeBody = passedByArray.join(", "); - item.url = attr(doc, 'meta[typeOf="eli:LegalResource"]', "about") + "/" + language.toLowerCase(); + item.url = attr(doc, 'meta[typeOf="eli:LegalResource"]', "about"); } else if (item.itemType == "case") { @@ -215,13 +210,13 @@ function scrape(doc, url) { // pretty hacky stuff, as there's little metadata available var docCourt = docType.substr(0, 1); if (docCourt == "C") { - item.court = languageMapping[languageUrl].ECJ || languageMapping.EN.ECJ; + item.court = languageMapping[viewingLanguage].ECJ || languageMapping.EN.ECJ; } else if (docCourt == "T") { - item.court = languageMapping[languageUrl].GC || languageMapping.EN.GC; + item.court = languageMapping[viewingLanguage].GC || languageMapping.EN.GC; } else if (docCourt == "F") { - item.court = languageMapping[languageUrl].CST || languageMapping.EN.CST; + item.court = languageMapping[viewingLanguage].CST || languageMapping.EN.CST; } item.url = url; @@ -253,10 +248,10 @@ function scrape(doc, url) { } // attachments // type: all - var pdfurl = "https://eur-lex.europa.eu/legal-content/" + languageUrl + "/TXT/PDF/?uri=CELEX:" + celex; - var htmlurl = "https://eur-lex.europa.eu/legal-content/" + languageUrl + "/TXT/HTML/?uri=CELEX:" + celex; - item.attachments = [{ url: pdfurl, title: "EUR-Lex PDF (" + languageUrl + ")", mimeType: "application/pdf" }]; - item.attachments.push({ url: htmlurl, title: "EUR-Lex HTML (" + languageUrl + ")", mimeType: "text/html", snapshot: true }); + var pdfurl = "https://eur-lex.europa.eu/legal-content/" + viewingLanguage + "/TXT/PDF/?uri=CELEX:" + celex; + var htmlurl = "https://eur-lex.europa.eu/legal-content/" + viewingLanguage + "/TXT/HTML/?uri=CELEX:" + celex; + item.attachments = [{ url: pdfurl, title: "EUR-Lex PDF (" + viewingLanguage + ")", mimeType: "application/pdf" }]; + item.attachments.push({ url: htmlurl, title: "EUR-Lex HTML (" + viewingLanguage + ")", mimeType: "text/html", snapshot: true }); item.complete(); } @@ -276,7 +271,7 @@ var testCases = [ "codeVolume": "281", "language": "en", "legislativeBody": "EP, CONSIL", - "url": "http://data.europa.eu/eli/dir/1995/46/oj/eng", + "url": "http://data.europa.eu/eli/dir/1995/46/oj", "attachments": [ { "title": "EUR-Lex PDF (EN)", @@ -300,20 +295,20 @@ var testCases = [ "items": [ { "itemType": "statute", - "nameOfAct": "Règlement (CE) n° 2257/94 de la Commission, du 16 septembre 1994, fixant des normes de qualité pour les bananes (Texte présentant de l'intérêt pour l'EEE)", + "nameOfAct": "Commission Regulation (EC) No 2257/94 of 16 September 1994 laying down quality standards for bananas (Text with EEA relevance)", "creators": [], "dateEnacted": "1994-09-16", "code": "OJ L", "codeNumber": "245", - "language": "fr", - "url": "http://data.europa.eu/eli/reg/1994/2257/oj/fra", + "language": "en", + "url": "http://data.europa.eu/eli/reg/1994/2257/oj", "attachments": [ { - "title": "EUR-Lex PDF (FR)", + "title": "EUR-Lex PDF (EN)", "mimeType": "application/pdf" }, { - "title": "EUR-Lex HTML (FR)", + "title": "EUR-Lex HTML (EN)", "mimeType": "text/html", "snapshot": true } @@ -369,15 +364,15 @@ var testCases = [ "title": "Bez námitek k navrhovanému spojení (Věc M.10068 — Brookfield/Mansa/Polenergia) (Text s významem pro EHP) 2021/C 14/01", "creators": [], "date": "2021", - "language": "cs", + "language": "nl", "url": "https://eur-lex.europa.eu/legal-content/CS/TXT/?uri=uriserv%3AOJ.C_.2021.014.01.0001.01.CES&toc=OJ%3AC%3A2021%3A014%3ATOC", "attachments": [ { - "title": "EUR-Lex PDF (CS)", + "title": "EUR-Lex PDF (NL)", "mimeType": "application/pdf" }, { - "title": "EUR-Lex HTML (CS)", + "title": "EUR-Lex HTML (NL)", "mimeType": "text/html", "snapshot": true } @@ -398,17 +393,17 @@ var testCases = [ "creators": [], "dateDecided": "21 ta' Settembru 2011", "abstractNote": "Trade mark Komunitarja - Proċedimenti għal dikjarazzjoni ta’ invalidità - Trade mark Komunitarja verbali SCOMBER MIX - Raġuni assoluta għal rifjut - Karattru deskrittiv - Artikolu 7(1)(b) u (ċ) tar-Regolament (KE) Nru 40/94 [li sar l-Artikolu 7(1)(b) u (c) tar-Regolament (KE) Nru 207/2009]", - "court": "Il-Qorti Ġenerali", + "court": "Gerecht EU", "docketNumber": "Kawża T-201/09", - "language": "mt", + "language": "nl", "url": "https://eur-lex.europa.eu/legal-content/MT/TXT/?uri=CELEX%3A62009TJ0201", "attachments": [ { - "title": "EUR-Lex PDF (MT)", + "title": "EUR-Lex PDF (NL)", "mimeType": "application/pdf" }, { - "title": "EUR-Lex HTML (MT)", + "title": "EUR-Lex HTML (NL)", "mimeType": "text/html", "snapshot": true } diff --git a/translators/FAOLEX Database.js b/translators/FAOLEX Database.js new file mode 100644 index 0000000..d08d5ad --- /dev/null +++ b/translators/FAOLEX Database.js @@ -0,0 +1,811 @@ +{ + "translatorID": "3b163469-3e62-46d8-82a1-4f31e86bf6f4", + "translatorType": 4, + "label": "FAOLEX Database", + "creator": "Bin Liu", + "target": "^https?://www\\.fao\\.org/faolex/results/", + "minVersion": "5.0", + "maxVersion": null, + "priority": 100, + "inRepository": true, + "browserSupport": "gcsibv", + "lastUpdated": "2025-10-30 15:45:00" +} + +/* + ***** BEGIN LICENSE BLOCK ***** + + Copyright © 2025 Bin Liu and Abe Jellinek + + This file is part of Zotero. + + Zotero is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Zotero is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with Zotero. If not, see . + + ***** END LICENSE BLOCK ***** +*/ + + +function detectWeb(doc, url) { + if (/\/faolex\/results\/details\//.test(url)) { + // This matches the details page for a law + return 'statute'; + } + else if (/\/faolex\/results\//.test(url)) { + if (getSearchResults(doc, true)) { + // Results/listing page with multiple laws + return 'multiple'; + } + else { + Z.monitorDOMChanges(doc.body); + } + } + return false; +} + +function getSearchResults(doc, checkOnly) { + var items = {}; + var found = false; + var rows = doc.querySelectorAll('.item-title > p > a'); + for (let row of rows) { + let href = row.href; + let title = ZU.trimInternal(row.textContent); + if (!href || !title) continue; + if (checkOnly) return true; + found = true; + items[href] = title; + } + return found ? items : false; +} + +async function doWeb(doc, url) { + if (detectWeb(doc, url) == 'multiple') { + let items = await Zotero.selectItems(getSearchResults(doc, false)); + if (!items) return; + for (let url of Object.keys(items)) { + await scrape(url); + } + } + else { + await scrape(url); + } +} + +async function scrape(url) { + let language = url.match(/\/faolex\/results\/details\/([a-z]{2})\//)[1]; + // Capitalize for JSON keys + language = language[0].toUpperCase() + language[1]; + + // Index of this language in #-separated strings + let languageIndex = ['En', 'Fr', 'Es', 'Ar', 'Ru', 'Zh'].indexOf(language); + if (languageIndex === -1) languageIndex = 0; + + let id = url.match(/LEX-[^#?/]+/)[0]; + let json = await requestJSON(`https://fao-faolex-prod.appspot.com/api/query`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + query: `faolexid:("${id}")`, + requestOptions: { + searchApplicationId: 'searchapplications/1be285f8874b8c6bfaabf84aa9d0c1be' + }, + }), + }); + let result = json.results[0]; + let getValues = name => result.metadata.fields + .find(field => field.name === name) + ?.textValues.values; + + let getValuesJoined = name => getValues(name)?.join('') || ''; + let getValuesLocalized = name => getValues(name + language) + || getValues(name).map(val => val.split('#')[languageIndex]) + || getValues(name + 'En'); + + let getValue = name => getValues(name)?.[0] || ''; + let getValueLocalized = name => getValue(name + language) + || getValue(name).split('#')[languageIndex] + || getValue(name + 'En'); + + let item = new Zotero.Item('statute'); + item.extra = ''; + + item.nameOfAct = getValue('titleOfText').replace(/\s*\.$/, ''); + if (getValue('originalTitleOfText')) { + item.extra += `Original Title: ${getValue('originalTitleOfText')}\n`; + } + + item.creators.push({ + lastName: getValueLocalized('country'), + creatorType: 'author', + fieldMode: 1 + }); + + // Public Law Number: Use the value of "FAOLEX No" + item.publicLawNumber = getValue('faolexId'); + + // Date Enacted: Use the value of "Date of text" + item.dateEnacted = getValue('dateOfText'); + + item.language = getValue('documentLanguageEn'); + + item.abstractNote = getValuesJoined('abstract').replace(/\[BR_PLACEHOLDER\]/g, '\n'); + + let pdfFilename = getValue('linksToFullText'); + if (pdfFilename) { + item.attachments.push({ + title: 'Full Text PDF', + mimeType: 'application/pdf', + url: `https://faolex.fao.org/docs/pdf/${pdfFilename}`, + }); + } + + // Tags: Use the value of "Keywords" + for (let keyword of getValuesLocalized('keyword') || []) { + if (!keyword) continue; + item.tags.push({ tag: keyword.trim() }); + } + + item.url = url.replace(/\/$/, ''); + + item.complete(); +} + +/** BEGIN TEST CASES **/ +var testCases = [ + { + "type": "web", + "url": "https://www.fao.org/faolex/results/details/fr/c/LEX-FAOC238894/", + "items": [ + { + "itemType": "statute", + "nameOfAct": "Fisheries Law", + "creators": [ + { + "lastName": "Cambodge", + "creatorType": "author", + "fieldMode": 1 + } + ], + "dateEnacted": "2025-06-16", + "abstractNote": "This Law is formulated with the goal of effectively managing, conserving and developing the fisheries sector, aiming to ensure long-term food security and economic and environmental sustainability. It also aims to protect the rights and benefits of fishers, fishing communities, aquaculture operators and businesses, in line with socio-economic and technological developments, while promoting participation in the sustainable management and conservation of fishery resources within regional and international frameworks — particularly in combating illegal, unreported and unregulated (IUU) fishing.\nThe Law sets up a comprehensive legal framework, covering: the management, protection, conservation and sustainable development of fishery resources; the protection of the interests of those involved in the fishery supply chain; support measures for the implementation of sectoral strategic plans in line with government policy; measures to meet necessary standards and conditions to ensure compatibility with international legal instruments; aquaculture management measures; etc. A Fisheries Commission shall be established to oversee the management and sustainability of the fisheries sector. The Law also introduces expanded inshore exclusive zones.\nThe Law consists of 15 Chapters and 104 Articles, with two Annexes.", + "language": "Khmer", + "publicLawNumber": "LEX-FAOC238894", + "url": "https://www.fao.org/faolex/results/details/fr/c/LEX-FAOC238894", + "attachments": [ + { + "title": "Full Text PDF", + "mimeType": "application/pdf" + } + ], + "tags": [ + { + "tag": "Pêche illicite, non déclarée et non réglementée (INN)" + }, + { + "tag": "agriculture familiale" + }, + { + "tag": "aquaculture" + }, + { + "tag": "autorisation/permis" + }, + { + "tag": "biodiversité" + }, + { + "tag": "classement/déclassement" + }, + { + "tag": "commerce international" + }, + { + "tag": "commerce intérieur" + }, + { + "tag": "coopération internationale" + }, + { + "tag": "débarquement" + }, + { + "tag": "développement durable" + }, + { + "tag": "engins de pêche/méthodes de pêche" + }, + { + "tag": "gestion communautaire" + }, + { + "tag": "gestion et conservation des pêches" + }, + { + "tag": "gestion intégrée" + }, + { + "tag": "gouvernance" + }, + { + "tag": "haute mer" + }, + { + "tag": "infractions/sanctions" + }, + { + "tag": "institution" + }, + { + "tag": "loi-cadre" + }, + { + "tag": "mariculture" + }, + { + "tag": "mesures du ressort de l’État du port" + }, + { + "tag": "mise en application/conformité" + }, + { + "tag": "pêche continentale" + }, + { + "tag": "pêche maritime" + }, + { + "tag": "pêche étrangère" + }, + { + "tag": "santé des animaux" + }, + { + "tag": "transbordement" + }, + { + "tag": "transformation/manutention" + }, + { + "tag": "utilisation durable" + }, + { + "tag": "zone marine" + } + ], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.fao.org/faolex/results/details/en/c/LEX-FAOC237255", + "items": [ + { + "itemType": "statute", + "nameOfAct": "Climate Law (No. 7552)", + "creators": [ + { + "lastName": "Türkiye", + "creatorType": "author", + "fieldMode": 1 + } + ], + "dateEnacted": "2025-07-02", + "abstractNote": "The Climate Law seeks to combat climate change in line with the green growth vision and net zero emissions target. It covers the reduction of greenhouse gas emissions and climate change adaptation activities, which are fundamental to combating climate change, as well as planning and implementation tools, revenues, permits, and inspections, and the procedures and principles of the related legal and institutional framework.\nThis Law adopts the approaches of equality, climate justice, precaution, participation, integration, sustainability, transparency, just transition, and progress. It obliges public institutions and organizations, as well as real and legal persons, to comply with and implement the measures and regulations to be taken in the public interest in accordance with this Law, in a timely manner. In the Nationally Determined Contributions (NDCs), the country's development priorities and special conditions will be taken into account in line with the net-zero emissions target, and measures will be taken within this framework.\nArticle 5 of the Climate Law lays down the activities to combat climate change, consisting of greenhouse gas emission reduction activities and climate change adaptation activities. Relevant public institutions and organizations are obligated to adapt, prepare, implement, monitor, and update planning tools containing medium- and long-term targets within the framework of greenhouse gas emission reduction activities. The public institutions and organizations are responsible for implementing mitigation measures, such as: (i) efficiency of energy, water, and raw material; (ii) preventing pollution at source; (iii) increasing the use of renewable energy; (iv) reducing the carbon footprint of products, businesses, institutions, and organizations; (v) using alternative clean or low-carbon fuels and raw materials; (vi) expanding electrification; and (vii) developing and increasing the use of clean technologies, in a manner consistent with the net-zero emissions target and the circular economy approach, in the sectors listed in the NDCs. Relevant institutions and organizations shall take measures to prevent carbon sink losses in forests, agricultural lands, pastures, and wetlands to offset emissions towards achieving the net-zero emissions target.\nThis Law provides for the establishment of the Emissions Trading System (ETS) and lays down provisions on the principles of allocations, the composition and duties of the Carbon Market Board, and voluntary carbon markets and offsets. It gives priority to climate-friendly investments with a high potential for reducing greenhouse gas emissions or adapting to climate change, as well as activities that contribute to meeting the research, development, and sectoral technological transformation needs required for green growth, and the mechanisms implemented within this scope. Article 14 sets out administrative sanctions, including but not limited to: violation of prohibitions or restrictions related to ozone-depleting substances, fluorinated greenhouse gases, hydrofluorocarbons and the monitoring greenhouse gas emissions, and businesses operating within the scope of the ETS without a greenhouse gas emission permit.", + "extra": "Original Title: İklim Kanunu (Kanun No. 7552).", + "language": "Turkish", + "publicLawNumber": "LEX-FAOC237255", + "url": "https://www.fao.org/faolex/results/details/en/c/LEX-FAOC237255", + "attachments": [ + { + "title": "Full Text PDF", + "mimeType": "application/pdf" + } + ], + "tags": [ + { + "tag": "agricultural land" + }, + { + "tag": "air quality/air pollution" + }, + { + "tag": "allocation/quota" + }, + { + "tag": "basic legislation" + }, + { + "tag": "bioenergy" + }, + { + "tag": "biofuel" + }, + { + "tag": "business/industry/corporations" + }, + { + "tag": "certification" + }, + { + "tag": "circular economy" + }, + { + "tag": "climate change" + }, + { + "tag": "data collection/reporting" + }, + { + "tag": "emissions" + }, + { + "tag": "emissions pricing" + }, + { + "tag": "energy conservation/energy production" + }, + { + "tag": "enforcement/compliance" + }, + { + "tag": "environmental planning" + }, + { + "tag": "governance" + }, + { + "tag": "green economy" + }, + { + "tag": "hazardous substances" + }, + { + "tag": "innovation" + }, + { + "tag": "inspection" + }, + { + "tag": "institution" + }, + { + "tag": "insurance" + }, + { + "tag": "investment" + }, + { + "tag": "monitoring" + }, + { + "tag": "offences/penalties" + }, + { + "tag": "oil" + }, + { + "tag": "ozone layer" + }, + { + "tag": "policy/planning" + }, + { + "tag": "pollution control" + }, + { + "tag": "precautionary principle" + }, + { + "tag": "protection of environment" + }, + { + "tag": "renewable energy" + }, + { + "tag": "research" + }, + { + "tag": "risk assessment/management" + }, + { + "tag": "sustainable development" + }, + { + "tag": "water resources management" + }, + { + "tag": "wetlands" + } + ], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.fao.org/faolex/results/details/ru/c/LEX-FAOC237135/", + "items": [ + { + "itemType": "statute", + "nameOfAct": "Law No. 128 “Water Code”", + "creators": [ + { + "lastName": "Кыргызстан", + "creatorType": "author", + "fieldMode": 1 + } + ], + "dateEnacted": "2025-06-27", + "abstractNote": "The Water Code establishes a comprehensive legal framework governing water relations, emphasizing the regulation of water use, protection, and development to ensure adequate and safe water supply for the population, environmental protection, and rational resource development. It underscores the state's ownership of water resources, the basin management approach, and principles such as stakeholder participation, environmental responsibility, and economic valuation of water. The document delineates the roles and competencies of various state bodies, including the President, Parliament, Cabinet of Ministers, and specialized councils, such as the National Water and Land Council and basin councils, with responsibilities ranging from policy formulation, legislation development, to water resource management and monitoring. Key measures include the development of national strategies and programs, basin plans, and water management policies aligned with international obligations. The Code specifies procedures for water allocation, permits, and contracts, prioritizing water use for drinking, household needs, irrigation, and energy generation. It details the regulation of groundwater extraction, the issuance of permits, and the transfer and extension of water use rights, alongside mechanisms for water pricing, exemptions, and liability for violations. The document also emphasizes environmental standards, pollution control, and the classification of water quality, along with establishing security zones, emergency response systems, and dam safety protocols. Institutional responsibilities for monitoring, enforcement, and stakeholder engagement are explicitly outlined, with timelines for periodic reviews and updates. Implementation mechanisms include the establishment of a unified water information system, state water inventories, and registers, with data collection, analysis, and reporting procedures governed by the Cabinet of Ministers. The Code prescribes institutional roles for water management authorities, environmental agencies, and local administrations, detailing procedures for permits, inspections, and dispute resolution. It also addresses international cooperation, stipulating principles for cross-border water relations, treaty compliance, and joint project financing. Overall, the document provides a detailed legal and institutional blueprint for water governance, emphasizing procedural clarity, stakeholder participation, and compliance with international standards.", + "extra": "Original Title: ВОДНЫЙ КОДЕКС КЫРГЫЗСКОЙ РЕСПУБЛИКИ от 27 июня 2025 года № 128.", + "language": "Russian", + "publicLawNumber": "LEX-FAOC237135", + "url": "https://www.fao.org/faolex/results/details/ru/c/LEX-FAOC237135", + "attachments": [ + { + "title": "Full Text PDF", + "mimeType": "application/pdf" + } + ], + "tags": [ + { + "tag": "базовое законодательство" + }, + { + "tag": "водоснабжение" + }, + { + "tag": "возобновляемая энергия" + }, + { + "tag": "государственная система водоснабжения" + }, + { + "tag": "договоры" + }, + { + "tag": "дозволение/разрешение" + }, + { + "tag": "международное сотрудничество" + }, + { + "tag": "мониторинг" + }, + { + "tag": "орошение" + }, + { + "tag": "охрана окружающей среды" + }, + { + "tag": "питьевая вода" + }, + { + "tag": "поверхностные воды" + }, + { + "tag": "подземные воды" + }, + { + "tag": "права на воду" + }, + { + "tag": "приоритеты" + }, + { + "tag": "производство гидроэлектроэнергии" + }, + { + "tag": "процедурные вопросы" + }, + { + "tag": "сбор данных/отчетность" + }, + { + "tag": "стандарты" + }, + { + "tag": "стандарты качества воды" + }, + { + "tag": "управление водными ресурсами" + }, + { + "tag": "устойчивое использование" + }, + { + "tag": "устойчивое развитие" + } + ], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.fao.org/faolex/results/details/zh/c/LEX-FAOC231816/", + "items": [ + { + "itemType": "statute", + "nameOfAct": "Regulations of the Ningxia Hui Autonomous Region on Ecological and Environmental Protection", + "creators": [ + { + "lastName": "中国", + "creatorType": "author", + "fieldMode": 1 + } + ], + "dateEnacted": "2024-11-28", + "abstractNote": "The Regulations aim to protect and improve the ecological environment, prevent and control pollution and other public hazards, safeguard public health and ecological environment rights and interests, promote the construction of ecological civilization, and promote sustainable economic and social development. The Regulations consist of 8 Chapters: Chapter 1 General Provisions; Chapter 2 Supervision and Administration; Chapter 3: Protecting and Improving the Ecological Environment; Chapter 4 Prevention and Control of Pollution and Other Public Hazards; Chapter 5 Environmental Risk Prevention and Emergency Response; Chapter 6 Information Disclosure and Public Participation; Chapter 7 Legal Liability; Chapter 8 Supplementary Provisions.\nThe Regulations reflect a broader commitment to ecological civilization and align with national policies on environmental protection, emphasizing the importance of collaborative efforts among various governmental departments and stakeholders through comprehensive environmental governance with a multi-faceted approach. The People's Government of the Autonomous Region shall organize the preparation of a water pollution prevention and control plan for the Ningxia section of the Yellow River Basin and strengthen the construction of a natural conservation area system with national parks as the main body. Local governments are tasked to establish robust monitoring and management systems for pollution sources, enhance emergency response capabilities for environmental incidents, and conduct regular risk assessments. The Regulations emphasize the need for public participation in environmental protection initiatives, including education and awareness campaigns to foster a culture of ecological responsibility. Additionally, the Regulations make provisions on the establishment of compensation mechanisms for ecological protection and the promotion of green technologies and practices across sectors. In terms of food, agriculture, and natural resource management, the Regulations advocate for sustainable practices that protect biodiversity and prevent resource depletion. Specific measures include the prohibition of illegal hunting and harvesting of protected species, as well as the implementation of water pollution prevention plans in agricultural areas. The Regulations also call for the integration of ecological considerations into agricultural policies and practices, ensuring that food production does not compromise environmental integrity.", + "extra": "Original Title: 宁夏回族自治区生态环境保护条例.", + "language": "Chinese", + "publicLawNumber": "LEX-FAOC231816", + "url": "https://www.fao.org/faolex/results/details/zh/c/LEX-FAOC231816", + "attachments": [ + { + "title": "Full Text PDF", + "mimeType": "application/pdf" + } + ], + "tags": [ + { + "tag": "保护区" + }, + { + "tag": "公众参与" + }, + { + "tag": "公共卫生" + }, + { + "tag": "公共用水" + }, + { + "tag": "内陆水域" + }, + { + "tag": "再生能源" + }, + { + "tag": "创新" + }, + { + "tag": "危害" + }, + { + "tag": "可持续利用" + }, + { + "tag": "可持续发展" + }, + { + "tag": "商业/工业/企业" + }, + { + "tag": "土壤污染/质量" + }, + { + "tag": "地下水" + }, + { + "tag": "地表水" + }, + { + "tag": "废弃物管理" + }, + { + "tag": "废物处理" + }, + { + "tag": "授权/许可" + }, + { + "tag": "排放" + }, + { + "tag": "排放定价" + }, + { + "tag": "政策/计划" + }, + { + "tag": "教育" + }, + { + "tag": "数据收集/报告" + }, + { + "tag": "栖息地保护" + }, + { + "tag": "检查" + }, + { + "tag": "森林管理/森林保护" + }, + { + "tag": "水资源管理" + }, + { + "tag": "污染控制" + }, + { + "tag": "污染者付费原则" + }, + { + "tag": "污水废水/排放" + }, + { + "tag": "治理" + }, + { + "tag": "沼泽地" + }, + { + "tag": "淡水污染" + }, + { + "tag": "物种保护" + }, + { + "tag": "环境保护" + }, + { + "tag": "环境影响评价" + }, + { + "tag": "环境规划" + }, + { + "tag": "生态友好的产品/生态友好型工艺" + }, + { + "tag": "生态系统保护" + }, + { + "tag": "生活垃圾" + }, + { + "tag": "生物多样性" + }, + { + "tag": "空气质量/空气污染" + }, + { + "tag": "管理/保护" + }, + { + "tag": "粮食安全" + }, + { + "tag": "综合管理" + }, + { + "tag": "绿色经济" + }, + { + "tag": "节能/能源生产" + }, + { + "tag": "融资" + }, + { + "tag": "责任/补偿" + }, + { + "tag": "跨界影响" + }, + { + "tag": "运输/仓储" + }, + { + "tag": "违法行为/处罚" + }, + { + "tag": "非生活来源的废弃物" + }, + { + "tag": "预警系统" + }, + { + "tag": "预防浪费" + }, + { + "tag": "风险评估/管理" + }, + { + "tag": "饮用水" + } + ], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.fao.org/faolex/results/details/es/c/LEX-FAOC236786/", + "items": [ + { + "itemType": "statute", + "nameOfAct": "Resolución 1415/2024 - Norma Técnica de Alimentos para Animales de la República Argentina", + "creators": [ + { + "lastName": "Argentina", + "creatorType": "author", + "fieldMode": 1 + } + ], + "dateEnacted": "2024-12-03", + "abstractNote": "Por la presente Resolución se aprueba la Norma Técnica de Alimentos para Animales de la República Argentina, como marco normativo consolidado e integral para toda la temática de alimentos destinados a la alimentación animal. En particular, se mantiene el Registro de Productos destinados a la Alimentación Animal vigente, en el cual deben inscribirse todos los productos debidamente aprobados destinados a la alimentación animal que se elaboren, comercialicen, fraccionen, depositen, distribuyan, importen y/o exporten, los cuales deberán contar para ello con un establecimiento autorizado por el Servicio Nacional de Sanidad y Calidad Agroalimentaria(SENASA). Por otro lado, se establecen las condiciones generales de los productos que no requieren registro, así como también de aquellos productos elaborados a pedido.\nLa Norma Técnica asimismo contempla disposiciones detalladas en cuanto a las condiciones generales sobre la comercialización de los productos, las especificaciones completas de los niveles de garantía establecidas, los embalajes y rótulos.", + "language": "Spanish", + "publicLawNumber": "LEX-FAOC236786", + "url": "https://www.fao.org/faolex/results/details/es/c/LEX-FAOC236786", + "attachments": [ + { + "title": "Full Text PDF", + "mimeType": "application/pdf" + } + ], + "tags": [ + { + "tag": "alimentos para animales/piensos" + }, + { + "tag": "buenas prácticas" + }, + { + "tag": "comercio interior" + }, + { + "tag": "comercio internacional" + }, + { + "tag": "higiene/procedimientos sanitarios" + }, + { + "tag": "medicamentos" + }, + { + "tag": "negocios/industria/corporaciones" + }, + { + "tag": "resistencia a los antimicrobianos" + }, + { + "tag": "sanidad animal" + }, + { + "tag": "transporte/depósito" + } + ], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.fao.org/faolex/results/en/?query=test", + "defer": true, + "items": "multiple" + } +] +/** END TEST CASES **/ diff --git a/zotero.sqlite b/zotero.sqlite index d27b069..b86b815 100644 Binary files a/zotero.sqlite and b/zotero.sqlite differ diff --git a/zotero.sqlite.1.bak b/zotero.sqlite.1.bak index 91017bd..3cc4143 100644 Binary files a/zotero.sqlite.1.bak and b/zotero.sqlite.1.bak differ diff --git a/zotero.sqlite.bak b/zotero.sqlite.bak index d27b069..b8a31d0 100644 Binary files a/zotero.sqlite.bak and b/zotero.sqlite.bak differ