You are here

Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control

Steven L. Brunton and J. Nathan Kutz
Cambridge University Press
Publication Date: 
Number of Pages: 
[Reviewed by
John Starrett
, on
It’s all about the data: how to model with it, how to get by with less of it, how to transform it. This is a wide-ranging book, covering almost every aspect of data-driven science and engineering. The authors suggest that it is a textbook suitable for advanced undergraduates and graduate students, and it almost is.  What is missing are exercises and a large enough index to find everything you might be looking for. While there is a nice website with a good set of video lectures, a few additional data sets, and three short homework sets, it is not quite enough. Because the book was published in 2019, the authors can be excused for a couple of sparse features, and they promise that more data sets and exercises will be coming. There are also a few typos, none too confusing, which will probably be absent in future editions.
This is a cleanly bound, compact book with medium weight coated paper and crisp text. There are many well-composed figures, most of them in color, with good explanatory captions, and sample code for almost all computational examples. While the code is for MATLAB, it is well commented and should not be too difficult to translate to Python or other computer languages. After the preface, there us a list of common optimization techniques, each with a good explanatory paragraph, equations with explanations, symbols along with a one-sentence description, and acronyms. After the body of the book are a glossary and an extensive bibliography. 
When using it as a textbook, the instructor will probably have to provide some additional data sets for exploration, and some additional homework and exercises, and possibly some additional resources for some terminology that might be new to less experienced students, such as fast and slow manifolds and tangent bundles on manifolds. That said, the writing is extremely clear, and useful analogies are often given. There is plenty of material here for a two semester course, and one could build two or three di↵erent one semester tailored courses, as many of the chapters do not depend on previous ones. This would also be a fine resource for professional mathematicians or engineers who need to learn about or refresh their knowledge of mathematical data science, control theory, or modeling from data.
Part one consists of three chapters, dimensional reduction and transforms, Fourier and wavelet transforms, and sparsity and compression. There are several nice examples including eigenfaces and an analysis of a Beethoven sonata.  Part two covers machine learning and data analysis, and contains a very nice chapter on neural networks. There is a well motivated example of the simplest neural network and some nice illustrations of how they can be used to predict the evolution of points near the Lorenz attractor without knowing anything about the dynamical equations. Part three, the longest section, covers dynamical systems and control theory. The background on the mathematics of dynamical systems is pretty sparse, but there are plenty of review papers and elementary texts such as Strogatz’ Nonlinear Dynamics and Chaos for a review of
non-data-driven dynamical systems if needed. The chapter on control provides much more background on classical control theory before going into data-driven control. I was surprised at the omission of chaos control and trajectory steering because these control types depend so critically on data collection and analysis.  Finally, part four covers reduced-order models in some depth. These had been mentioned and emphasized earlier, but this section concentrates on the POD (proper orthogonal decomposition), which is the SVD (singular value decomposition) applied particularly to PDEs. This method has remarkable success with making sense of turbulence in fluid dynamics, but can be applied to any system governed by PDEs, and even to systems for which the PDEs governing them are unknown, such as the dynamics of cellular flames. The section also deals with reconstruction of dynamics when only sparse measurements are available.  Given how complete the book is in almost all aspects, I was hoping for a mention of the EMD (empirical mode decomposition) and the Hilbert-Huang transform, which can deal with data whose dominant modes change over time. Now that it is on a relatively sound mathematical basis, it might warrant inclusion in a later edition.
This is a fine book, and quite good for a first edition. It is clearly written with many examples and informative figures has a very useful bibliography and many good programming examples. I would use it for a course without reservation, and it has a permanent place on my bookshelf as a reference. 


John Starrett is an emeritus professor of mathematics at the New Mexico Institute of Mining and Technology. His areas of specialization are dynamical systems and topology. Now retired, he spends his time traveling, making guitars and composing music.