Data-driven approaches have swept all walks of science and engineering in recent years, with deep neural networks, deep reinforcement learning, and adversarial networks becoming the new staples that everyone uses to tackle a very wide variety of problems. While the empirical success of these methods is truly impressive when a lot of training data are available, there are still many problems that can, in fact, benefit from classical machine learning tools.