Training is typically a lot more computationally complex problem than prediction.
Therefore, certain end-to-end analytics usage scenarios require that training and prediction phases are done on different devices,
the training is done on more powerful devices, while prediction is done on smaller devices.
Because smaller devices may have stricter memory footprint requirements,
oneDAL separates Training, Prediction, and respective Model in three different class hierarchies to minimize the footprint.