Machine Learning from scratch (by Danny Friedman)