Data Science from Scratch: First Principles with Python

Category: Programming
Author: Joel Grus
This Month Hacker News 1

About This Book

Data science libraries, frameworks, modules, and toolkits are great for doing data science, but they’re also a good way to dive into the discipline without actually understanding data science. In this book, you’ll learn how many of the most fundamental data science tools and algorithms work by implementing them from scratch.

If you have an aptitude for mathematics and some programming skills, author Joel Grus will help you get comfortable with the math and statistics at the core of data science, and with hacking skills you need to get started as a data scientist. Today’s messy glut of data holds answers to questions no one’s even thought to ask. This book provides you with the know-how to dig those answers out.

  • Get a crash course in Python
  • Learn the basics of linear algebra, statistics, and probability—and understand how and when they're used in data science
  • Collect, explore, clean, munge, and manipulate data
  • Dive into the fundamentals of machine learning
  • Implement models such as k-nearest Neighbors, Naive Bayes, linear and logistic regression, decision trees, neural networks, and clustering
  • Explore recommender systems, natural language processing, network analysis, MapReduce, and databases


by Anon84   2019-05-12
As someone who does teach tutorials as a side gig, I would argue that implementing matrix operations in a tutorial on neural networks is overkill. No matter what the level of the tutorial you always need to draw a line and assume a certain amount of background knowledge and knowing how to use standard tools isn't too much to ask. (yes, I know numpy isn't part of python's standard library, but it comes with pretty much any Python distribution as many other libraries depend on it.)

If we're talking about a longer format, such as a book, then we might consider digging deeper and implementing as much as possible using the barest of Python requirements. Indeed, Joel Grus does implement everything from scratch in his great (although a bit dated) book

EDIT: This is still a work in progress (and relies on numpy and matplotlib), but here is my version: These notebooks are meant as support for a webinar so they might not be the clearest as standalone, but you also have the slides there.

by formalsystem   2018-10-17
Feel free to PM if you need more specific recommendations since it was really hard to try and come up with a concise list. I've seen a lot of friends and colleagues struggle with some specific popular books. Sometimes its OK not to like the way someone writes even if they're really smart and super famous.

My two favorite applied ones are

* Data science from scratch because it's one of the most concise and logical expositions of most ML algorithms in simple python that you'll remember and be able to reproduce from scratch if need be

* Deep learning with python as a next step since it covers more complicated neural net architectures using Keras so not from scratch but with clear code that you'll again remember

* Designing data-intensive apps because it'll prepare you for most challenges you'll face as a data engineer

On the theoretical side

* All of statistics: it's been recommended here on hacker news many times and for good reason. Its scope is very ambitious and it avoids the trap that math books fall into of leaving too many seriously hard steps an exercise to the reader.

* Convex optimization which will give you the theoretical foundation to understand mathematically supervised and unsupervised learning

I'll also add a reference to a Reinforcement Learning resource because I'm trying to build a game AI company using its ideas. Simple RL with TF because being able to program virtual robots to do stuff is really cool and this is one of the easier ways to better grasp RL Probably worth studying in conjunction with RL an introduction which is more theoretical and has a Q&A like approach to understanding the material which was interesting.