https://dmai287.medium.com/learn-data-science-from-scratch-understanding-supervised-and-unsupervised-learning-and-common-b7e95f5f5342