https://medium.com/@ivanreznikov/msc-data-science-lecture-notes-l1-introduction-to-machine-learning-f88e8e5f82bf