Machine learning is one of the fastest growing areas of computer science, with far-reaching applications. The aim of this textbook is to introduce machine learning, and the algorithmic paradigms it offers, in a principled way. The book provides an extensive theoretical account of the fundamental ideas underlying machine learning and the mathematical derivations that transform these principles into practical algorithms. Following a presentation of the basics of the field, the book covers a wide array of central topics that have not been addressed by previous books.

This book blends the foundational theories of machine learning with the practical realities of building tools for everyday data analysis. You'll use the flexible programming languages to build programs that implement algorithms for data classification, forecasting, recommendations, and higher-level features like summarization and simplification.