7 Making useful models with ML

 

This chapter covers:

  • Transforming data for processing
  • Injecting information with feature engineering
  • Designing the model’s structure
  • Running the model development process
  • Deciding which models to retain and which to reject

Sprint 2 is the rollercoaster ride that we’ve been working toward; finally, we’re going to do some ML! The success or failure of this phase of the project is the pivot point for everything else. Although we created the conditions for success with the work in presales, sprint 0, and sprint 1, all this work will be for nothing if we can’t implement useful models. Creating a model is easy if you’ve done the hard part of getting and preparing the data. A simple model can involve writing a single line of code or pressing a button on a user interface. However, creating a useful model is much harder.

What makes a model created with ML useful or useless? The traditions of ML say that a useful model is one that generalizes well: the model can effectively deal with data that it was not trained on and that it copes with unseen circumstances. But, in fact, there are a bunch of other traits that make models useful, or if they don’t have them, useless.

7.1 Sprint 2 backlog

7.2 Feature engineering and data augmentation

7.2.1 Data augmentation

7.3 Model design

7.3.1 Design forces

7.3.2 Overall design

7.3.3 Choosing component models

7.3.4 Inductive bias

7.3.5 Multiple disjoint models

7.3.6 Model composition

7.4 Making models with ML

7.4.1 Modeling process

7.4.2 Experiment tracking and model repositories

7.5 Stinky, dirty, no good, smelly models