https://singularityfeed.com/building-5-machine-learning-models-from-simplicity-to-optimization/