Machine Learning Handbook

Machine Learning Handbook

This site provides theorical explanations and Python-based demonstrations for various Machine Learning concepts, techniques and tools. Associated practical challenges (katas) can be found here.


This is my main textbook for teaching Machine Learning at French engineering schools ENSC. ENSEIRB-MATMECA and IOGS.

Its content is inspired by a large number of sources, from which numerous ideas and several illustrations were borrowed (more details here).

Demonstrations and challenges leverage the essential tools of the Python ecosystem for Machine Learning: NumPy, pandas, scikit-learn, Keras and PyTorch.

Tools used in this website


All chapters are written as Jupyter Notebooks combining explanations and example code. When teaching, I use reveal.js and RISE to showcase them as live presentations.

The content of this site is designed to be browsed thematically rather than sequentially.


From any chapter, you can launch a live session in the cloud by pressing the button in the toolbar above and selecting a hosted runtime environment. You will be able to test the code and regenerate the chapter output.