Von Python bis SQL: Data-Science-Ressourcen zum Selberlernen
Hinweis: Wir haben in diesem Artikel Provisions-Links verwendet und sie durch "*" gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält t3n.de eine Provision.
Data-Science ist ein interdisziplinäres Feld, in dem wissenschaftliche Methoden, Prozesse, Algorithmen und Systeme angewandt werden, um Wissen und Einsichten aus großen Datenmengen zu ziehen. Anders gesagt: Data-Scientists wenden wissenschaftliche Methoden an, um Muster oder Einsichten zu gewinnen, auf deren Basis Unternehmen Vorgänge optimieren und bessere Entscheidungen treffen können.
In den letzten Jahren hat die Nachfrage nach Data-Scientists dementsprechend rasant zugenommen. Der Einstieg ist jedoch gar nicht so einfach. Naturwissenschaftler mit Statistikkenntnissen haben ganz gute Karten, aber auch sie müssen sich eine ganze Reihe weiterer zusätzlicher Kenntnisse aneignen. Meistens hapert es an den technischen Skills. Da hattet ihr zwar Statistik I, II und III an der Uni belegt und alle drei bestanden, Python, die in der Datenwissenschaft meistgenutzte Programmiersprache aber noch nie auch nur eines Blickes gewürdigt. Überhaupt, Programmiersprachen lernt man an der Uni in den Fachbereichen Physik oder Biologie wahrscheinlich nicht.
An dieser Stelle anzusetzen, ist nicht die schlechteste Idee. Bevor ihr Python entsprechend nutzen könnt, solltet ihr erstmal die Grundkonzepte der Sprache verstehen lernen. Wer keine Erfahrung hat, dem seien die kostenlosen Einsteigerkurse von Codecademy* ans Herz gelegt. Dort schreibt ihr von der ersten Lektion an kleine Programme und lernt so die Basics – Syntax, Funktionen, Loops, Klassen, Module. Codecademy bietet außerdem ein kostenpflichtiges Pro-Programm, in dem ihr zusätzliche Projekte bearbeiten könnt. Ob sich das im Einzelfall lohnt, müsst ihr selbst entscheiden.
Datenanalyse mit Python
Wenn ihr euch mit den Python-Basics – oder auch gerne darüber hinaus – einigermaßen sicher fühlt, könnt ihr anfangen, euch mit dem Thema Datenanalyse zu befassen. Einen Blick wert ist zum Beispiel dataquest.io – dort findet ihr relativ viele kostenfreie Inhalte und Lernpfade für Datenanalysten, Data-Scientists und Dateningenieure. Wer doch ein bisschen Geld über hat, ist ganz gut damit beraten, es in ein paar Monate Premiummitgliedschaft bei dataquest.io zu stecken – Kostenpunkt zwischen 24,50 und 49 US-Dollar pro Monat, abhängig vom Modell, für das ihr euch entscheidet.
Wenn ihr euch für die Investition entschieden habt, habt ihr durch den Dataquest-Kurs wahrscheinlich einen ganz guten Überblick über Machine Learning mit Python gewonnen. Wenn nicht, nehmt euch am Besten Scikit-Learn vor – eine der meistgenutzten Machine-Learning-Libraries. Die Doku ist gut und ziemlich ausführlich – dort findet ihr Tutorials ohne Ende. Außerdem einen Blick wert ist das GitHub-Repo von Andreas Mueller – einer der Core-Entwickler der Library. Dort findet ihr außerdem Bücher, Slides und Notizen zu seinen Workshops. Wer damit durch ist, kann sich an kleineren Machine-Learning-Projekten versuchen. Programmieren lernt ihr am Besten, indem ihr es einfach macht!
Daten-Extraktion mit SQL
Eine der Sachen, die ihr als Data-Scientists immer und immer wieder machen werdet, ist, Daten zu extrahieren. Meistens beinhaltet dieser Vorgang an irgendeinem Punkt das Ausführen von SQL-Abfragen gegen eine Datenbank. Wer den Dataquest-Kurs gemacht hat, hat darüber wahrscheinlich schon ein ganz solides Fundament. Alle, die sich dagegen entschieden haben, finden im Netz zahlreiche kostenfreie Ressourcen. Zum Beispiel den SQL-Kurs bei Codecademy oder ergänzend dieses Spiel.
Um eure technischen Skills abzurunden, solltet ihr außerdem in Erwägung ziehen, R zu lernen. Einen kostenlosen Einführungskurs gibt es zum Beispiel bei Codecademy.* Dort gibt es außerdem, ähnlich wie bei Dataquest, einen kompletten Data-Science-Learning-Path – für alle, die sich für einen Pro-Account entscheiden. Der kostet je nach Modell zwischen 15,99 und 31,99 Dollar monatlich.
Software-Engineering
Ergänzen könnt – und müsst – ihr eure Skills in Python und R mit allgemeinen Software-Engineering-Skills und Best Practices. Gemeint sind Themen wie Clean Code, Testing oder Version-Control. In Python like you mean it wird zum Beispiel der PEP8 Style Guide behandelt, außerdem lernt ihr, wie ihr euren Code dokumentiert. Für Version-Control, Testing und Debugging seien euch die „Skikit-Learn Contribution“-Guidelines ans Herz gelegt. Natürlich könnt ihr auch auf allgemeinere Lern-Ressourcen zurückgreifen, die Guidelines behandeln diese Themen spezifisch im Kontext einer Data-Science-App.
Deep Learning
Mit fast.ai bekommt ihr eine ganzheitliche Einführung in das Thema Deep Learning. Dieser Kurs beinhaltet eine Einführung in die Themenbereiche Machine Learning, Deep Learning, computergestützte lineare Algebra und eine code-fokussierte Einführung in Natural Language Processing. Die Kurse sind alle sehr praxisbezogen, außerdem komplett werbefrei und gratis.
Genug der Praxis. Als Data-Scientist braucht ihr außer Coding-Skills auch theoretisches Wissen – und das gar nicht mal so knapp. Das Berufsfeld eignet sich auch deshalb so gut für Naturwissenschaftler und Naturwissenschaftlerinnen, weil die von der Uni oft ein solides Fundament an benötigtem theoretischen Wissen mitbringen.
Statistik
Ihr solltet zumindest grundlegende Konzepte der Statistik kennen und beherrschen. Diese Kenntnisse habt ihr euch im besten Fall bereits an der Uni angeeignet, falls nicht, würde es sich eventuell empfehlen, entsprechende (Einführungs-)Veranstaltungen an einer naturwissenschaftlichen Fakultät zu belegen. An vielen Universitäten gibt es Gasthörerplätze – vielleicht habt ihr Glück und werdet in eurer Stadt fündig. Lernen solltet ihr unter anderem, wie man Versuche plant, Datenproben zusammenfasst, Hypothesen testet oder Abhängigkeiten misst.
Wofür braucht man Mathe? 😨
Viele Machine-Learning-Apps nutzen Infinitesimalrechnung (englisch: Calculus), um die Performanz von Modellen zu optimieren. Laut Wikipedia ist Calculus die mathematische Betrachtung fortlaufender Veränderung. Wenn ihr auch nur ein bisschen Content zu Machine Learning angeschaut habt, seid ihr wahrscheinlich über den Term Gradient Descent gestolpert – einer der beliebtesten Optimierungsalgorithmen und bei weitem der am häufigsten verwendete Weg, neuronale Netzwerke zu optimieren. Dabei werden die Parameterwerte eines Modells iterativ verändert. Ziel ist es, bei einem Optimum anzukommen und so die Kostenfunktion zu minimieren – also eine möglichst gute Zusammenhangsfunktion zu finden. Gradient Descent ist ein gutes Beispiel dafür, wie Calculus im Machine Learning genutzt wird. Beherrschen solltet ihr Ableitungen, Kettenregel, Gradienten und Themen der linearen Algebra wie Matrizen und Vektoren. Ein solides Verständnis dieser Konzepte braucht ihr, weil viele Machine-Learning-Methoden wie zum Beispiel XG-Boost Matrizen nutzen, um Eingaben zu speichern und Datensätze zu verarbeiten. Wer keine Lust auf Mathe hat, sollte wissen, dass wenigstens eine grundlegende Kenntnis von Vektoren und Matrizentransformation benötigt wird – sonst kommt ihr wahrscheinlich nicht allzu weit. Eine nützliche Ressource, die Lernende über kleine Challenges an das Themenfeld heranführen will, ist Project Euler. Eine umfassende Sammlung an Büchern und anderen Ressourcen, um Mathe selber zu lernen, hat Neil Sainsbury in einem Blogpost zusammengetragen. Er selbst hat sechs Jahre gebraucht, um die alle durchzuarbeiten. Wie tief ihr einsteigen wollt, ist am Ende natürlich euch überlassen.
Praxis ist wichtig!
Theorie und Coding-Skills müsst ihr dann auch anwenden. Auch hier ist es wie in allen anderen Dingen auch: Man lernt, indem man einfach macht. Am besten übt ihr mit Projekten, die möglichst nah an einer echten Anwendung sind. Ihr werdet mit ziemlicher Sicherheit über Störfaktoren wie fehlende oder fehlerhafte Daten stolpern – was am Ende dazu beiträgt, dass ihr lernt, wie mit solchen Problemen umzugehen ist. Es gibt eine Reihe an Ressourcen, die ihr nutzen könnt, um euch an derartigen Projekten auszuprobieren.
Auf kaggle.com gibt es eine Reihe von Machine-Learning-Wettbewerben, die euch ein breit gefächertes Angebot an Datensätzen zugänglich machen. Alle kommen jeweils mit einem spezifischen Problem und einem Board, auf dem ihr eure Fortschritte dokumentieren könnt – so seht ihr, an welchen Stellen ihr euch vielleicht noch etwas intensiver reinhängen müsst. Andere Plattformen sind zum Beispiel Vidhya oder Drivendata.
Auch das Machine-Learning-Repo der UCI beinhaltet eine Menge öffentlich verfügbarer Datensätze. Die könnt ihr nutzen, um eure eigenen Projekte zu starten. Am besten speichert ihr eure Projekte irgendwo öffentlich, zum Beispiel auf GitHub oder GitLab – so habt ihr auch gleich ein Portfolio vorzuweisen, das eure Fortschritte dokumentiert.
Eine gute Idee ist es auch immer, an Open-Source-Projekten mitzuarbeiten. Es gibt viele Python-Libraries, die von Freiwilligen aus der Community gepflegt werden. Außerdem sinnvoll: Meetups, Hackathons und Konferenzen zu besuchen, wo ihr Gleichgesinnte treffen, euch austauschen, mit ihnen zusammen coden und Business-Kontakte knüpfen könnt.
Der Artikel wurde am 30.3.2021 aktualisiert
Vielleicht ebenfalls interessant für dich:
- Python: Wie aus einem Nerd-Projekt eine der beliebtesten Programmiersprachen der jüngsten Zeit wurde
- Sechs Gründe, warum ihr spätestens 2020 Python lernen solltet
- Diese Tools bieten intelligente Code-Vervollständigung per KI