Data Science From Scratch: Buchrezension
Programmierer lernen, indem sie Techniken von Grund auf implementieren.
Es ist eine Art des Lernens, die vielleicht langsamer ist als andere Arten des Lernens, aber insofern umfassender, als alle beteiligten Mikroentscheidungen intim werden. Die Implementierung ist von Anfang bis Ende in Eigenregie.
In diesem Beitrag werfen wir einen genauen Blick auf Joel Grus beliebtes Buch „Data Science from Scratch: First Principles with Python“.
Ich habe kürzlich die Taschenbuchversion zu Ende gelesen und denke, dass es eines meiner Lieblingsbücher für maschinelles Lernen für Anfänger in diesem Jahr sein könnte. Sichern Sie sich ein Exemplar!
Überblick über das Buch
Werfen wir einen Blick auf dieses Buch aus der Vogelperspektive.
Der Autor: Joel Grus
Der Autor dieses Buches ist Joel Grus, ein Softwareentwickler bei Google.
In früheren Positionen war er Datenwissenschaftler und Analyst bei Start-ups und Ingenieur bei Google. Er promovierte am Caltech. Ein sehr schöner Hintergrund.
Erfahren Sie mehr über Joel auf seinem LinkedIn-Profil, Blog und Twitter.
Die Zielgruppe: Anfänger
Die Zielgruppe des Buches sind fortgeschrittene Programmierer, die sich für den Einstieg in Datenwissenschaft und maschinelles Lernen interessieren.
Python ist keine Voraussetzung zum Lesen dieses Buches (in Kapitel 2 gibt es einen Python-Crashkurs), aber es würde die Dinge beschleunigen, wenn Sie bereits Python-Programmierer wären.
Das Buch setzt keinen mathematischen Hintergrund im Bereich maschinelles Lernen voraus (in den Kapiteln 4 bis 7 gibt es einen Crashkurs), aber auch hier würden einige Hintergrundkenntnisse in Statistik, Wahrscheinlichkeit und Algebra die Sache beschleunigen.
Der Buchansatz: Code schreiben (in Python)
Dies ist ein Einführungsbuch in die Datenwissenschaft und das maschinelle Lernen.
Der Großteil des Textes konzentriert sich auf die Implementierung von Algorithmen für maschinelles Lernen. Es gibt eine kurze Einführung in Python und die Behandlung einiger grundlegender Mathematik-, Datenvisualisierungs- und Datenerfassungsthemen.
Es wird Sie vom Programmieranfänger zu der Fähigkeit führen, maschinelle Lernalgorithmen zu implementieren, um verschiedene datenwissenschaftliche Probleme zu lösen.
Code von Grund auf neu
Der Ansatz des Buches besteht darin, die Konzepte zu beschreiben und sie dann von Grund auf in Python zu implementieren. Dies bedeutet ohne den Einsatz von Bibliotheken für maschinelles Lernen und Datenverarbeitung (z. B. scikit-learn).
Das erklärte Ziel des Autors, Algorithmen von Grund auf zu implementieren, ist:
…Werkzeuge und implementierte Algorithmen von Hand bauen, um sie besser zu verstehen.
Gute Codebeispiele müssen erstens lesbar und zweitens effizient und effektiv sein. Sie sind aus Gründen der Verständlichkeit als Lehrhilfe und nicht als Code auf Produktionsebene geschrieben. Beachten Sie, dass die Programmierung, die Sie von Grund auf durchführen werden, nur zu Lehrzwecken dient und nicht umsetzbar ist.
Ich habe viel darüber nachgedacht, Implementierungen und Beispiele zu erstellen, die klar, gut kommentiert und lesbar sind. In den meisten Fällen sind die von uns entwickelten Werkzeuge aufschlussreich, aber unpraktisch.
Buchinhalte
Das Buch ist 311 Seiten lang und enthält 25 Kapitel. Es ist ein klassisches O’Reilly-Buch und hat die perfekte Form, um es aufgeschlagen vor sich liegen zu lassen, während Sie auf der Tastatur herumhämmern und die Codebeispiele umsetzen.
In diesem Abschnitt werfen wir einen Blick auf das Inhaltsverzeichnis:
Ein Datenwissenschaftler ist jemand, der aus chaotischen Daten Erkenntnisse gewinnt
- Kapitel 1: Einführung (Was ist Data Science?)
- Kapitel 2: Ein Crashkurs in Python (Syntax, Datenstrukturen, Kontrollfluss und andere Funktionen)
- Kapitel 3: Visualisieren von Daten (Balken-, Linien- und Streudiagramme mit Matplotlib)
- Kapitel 4: Lineare Algebra (Vektoren und Matrizen)
- Kapitel 5: Statistik (zentrale Tendenz und Korrelationen)
- Kapitel 6: Wahrscheinlichkeit (Theorem von Bayes, Zufallsvariablen, Normalität)
- Kapitel 7: Hypothese und Inferenz (Konfidenzintervalle, P-Werte, Bayes'sche Inferenz)
- Kapitel 8: Gradientenabstieg (Gradienten, Schritte, stochastische Variation)
- Kapitel 9: Daten abrufen (Scraping von HTML, JSON-APIs)
- Kapitel 10: Arbeiten mit Daten (Grundlegende Visualisierung, Datentransformationen)
Maschinelles Lernen … [bezieht sich] auf die Erstellung und Verwendung von Modellen, die aus Daten gelernt werden […] dies könnte als prädiktive Modellierung oder Data Mining bezeichnet werden
- Kapitel 11: Maschinelles Lernen (Anpassung, Bias-Varianz, Merkmalsauswahl)
- Kapitel 12: k-Nächste Nachbarn (auch Fluch der Dimensionalität)
- Kapitel 13: Naive Bayes
- Kapitel 14: Einfache lineare Regression (auch Gradientenabstieg)
- Kapitel 15: Multiple Regression (auch Bootstrap, Regularisierung)
- Kapitel 16: Logistische Regression (auch SVM)
- Kapitel 17: Entscheidungsbäume (auch Random Forest)
- Kapitel 18: Neuronale Netze (Perzeptron und Backprop)
- Kapitel 19: Clustering (k-Means)
Der Begriff „Natürlicher Sprachprozess“ (NLP) bezieht sich auf Rechentechniken, die Sprache einbeziehen.
- Kapitel 20: Verarbeitung natürlicher Sprache (N-Gramm, Grammatiken, Gibbs-Sampling)
- Kapitel 21: Netzwerkanalyse (Zentralität und PageRank)
- Kapitel 22: Empfehlungssysteme (benutzer- und artikelbasiert)
- Kapitel 23: Datenbanken und SQL (Grundlegende Verwendung)
- Kapitel 24: MapReduce (verschiedene Arbeitsbeispiele)
- Kapitel 25: Machen Sie weiter und betreiben Sie Data Science (Bibliotheken, die Sie verwenden sollten)
Die Implementierung von Dingen „von Grund auf“ ist großartig, um zu verstehen, wie sie funktionieren. Aber im Allgemeinen ist es nicht besonders gut für Leistung …, Benutzerfreundlichkeit, schnelles Prototyping oder Fehlerbehandlung. In der Praxis werden Sie gut gestaltete Bibliotheken verwenden wollen, die die Grundlagen solide umsetzen.
Meinungen zum Buch
Das Inhaltsverzeichnis gefiel mir im Allgemeinen, außer dass ich einige Änderungen vornehmen würde.
Ich würde einige der späteren Kapitel wie NLP, Netzwerkanalyse usw. (Kapitel 20–24) weglassen und das Buch in „Machine Learning Algorithms from Scratch“ umbenennen. Es wäre ein weniger sexy, aber ehrlicherer und genauerer Titel.
Bei Data Science geht es darum, die Fragen zu formulieren, dann die Daten zu sammeln und die Modelle zu erstellen, um sie zu beantworten. Wir brauchen eigentlich kein Buch über Datenwissenschaft von Grund auf, es sei denn, es handelt sich um eine Reihe von Geschäftsfallstudien plus Modellierung. „Von Grund auf neu“ bedeutet in der Datenwissenschaft wirklich der Teil mit Algorithmen.
Ich bin nicht verärgert, tatsächlich hatte ich eine tolle Zeit, dieses Buch zu lesen, aber ich könnte mir vorstellen, dass jemand systematische Prozesse zur Formulierung und Bearbeitung von Geschäftsdatenproblemen erwartet und dass sich die Modellierung etwas irreführend anfühlt.
Ich habe nicht alle Algorithmen von Grund auf implementiert. Ich habe das ganze Buch gelesen, alle Beispiele studiert, aber nur ein paar zum Spaß umgesetzt.
Ich fand den Code leicht zu lesen und habe ihn gerade ausreichend kommentiert. Ich denke, dass es ein guter Schachzug war, auf Vanilla Python (anstelle von NumPy) umzusteigen. Dadurch wurde die Messlatte gerade so weit gesenkt, dass Sie nur noch eine grundlegende Python-Syntax benötigen und los geht's.
Ressourcen
Für den Fall, dass Sie tiefer eintauchen möchten, habe ich einige zusätzliche Ressourcen zum Buch zusammengestellt.
- Data Science von Grund auf: Erste Prinzipien mit Python auf Amazon
- GitHub Repo stellt den gesamten Code aus dem Buch bereit (mit Fehlerbehebungen und Beispieldaten)
Letzte Gedanken
Ich mag das Buch. Ich hatte Spaß, vor allem, weil es mir schon immer Spaß gemacht hat, Programmierbücher durchzuarbeiten, und weil ich selbst ein Buch wie dieses geschrieben habe (z. B. „Clever Algorithms“).
Wenn Sie schon einmal in der Nähe waren und sich gerade für Scikit-Learn oder R interessieren und kein Interesse an der Ablenkung haben, ist dieses Buch wahrscheinlich nichts für Sie. Aber denken Sie daran, das Lernen hört nie auf und es kann Spaß machen, die Anfängerthemen noch einmal durchzugehen und die Schrauben festzuziehen.
Wenn Sie sich mit Python auskennen (oder ein erfahrener Entwickler sind und in Python einsteigen möchten) und sich mit Algorithmen für maschinelles Lernen durch deren Implementierung vertraut machen möchten, dann ist dieses Buch genau das Richtige für Sie.
Sichern Sie sich ein Exemplar!
Haben Sie „Data Science From Scratch“ gelesen? Was hast du gedacht? Hinterlassen Sie einen Kommentar.